Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将if放在一行python中_Python_List - Fatal编程技术网

将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