把if放在一行python中

时间:2017-07-05 16:30:51

标签: 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]
                     ^
 SyntaxError: invalid syntax

请建议。

4 个答案:

答案 0 :(得分:4)

您可以执行以下操作

>>> v=['one','','two','three','',]
>>> vr = [i for i in v if i]
>>> vr
['one', 'two', 'three']

答案 1 :(得分:2)

v=['one','','two','three','',]
print(*[i for i in v if i], sep='\n')

答案 2 :(得分:1)

vr=[i for i in v if i!='']热潮

答案 3 :(得分:1)

如果您对不同的方法感兴趣

Python 3.x:

vr = list(filter(('').__ne__, v)) 

Python 2.x:

vr = filter(lambda a: a != '', v)