将if放在一行python中
假设我有一张清单:将if放在一行python中,python,list,Python,List,假设我有一张清单: v=['one','','two','three','',] 现在我想过滤掉所有的空值: for i in v: if i=='' pass else: print(i) 我想在一行中这样做: vr=[i if i!='' else pass for i in v] 得到贝娄错误 File "<console>", line 1 vr=[i if i!='' else pass for i in vt1]
v=['one','','two','three','',]
现在我想过滤掉所有的空值:
for i in v:
if i==''
pass
else:
print(i)
我想在一行中这样做:
vr=[i if i!='' else pass for i in v]
得到贝娄错误
File "<console>", line 1
vr=[i if i!='' else pass for i in vt1]
^
SyntaxError: invalid syntax
文件“”,第1行
vr=[i如果i!=''否则在vt1中为i传递]
^
SyntaxError:无效语法
请建议。您可以执行以下操作
>>> v=['one','','two','three','',]
>>> vr = [i for i in v if i]
>>> vr
['one', 'two', 'three']
vr=[i代表i,如果i!='']
boom如果您对不同的方法感兴趣
v=['one','','two','three','',]
print(*[i for i in v if i], sep='\n')
Python3.x:
vr = list(filter(('').__ne__, v))
Python2.x:
vr = filter(lambda a: a != '', v)
它起作用了。谢谢你,伙计。你能给我推荐一些关于这类东西的现代python教程吗?我想对python类的概念有一些建议。你认为直接使用“dunder”方法是不好的。对于美观的
映射
和过滤器
,请使用操作员
模块,可能与部分
结合使用,因此这将从操作员导入ne变为;从functools导入部分
,然后只需过滤(部分(ne),v)。然而,在这种情况下,因为'
是错误的,所以您可以简单地使用过滤器(None,v)
Dully noted@juanpa.arrivillaga