Pythonic迭代数组并删除所有None的方法

时间:2017-10-11 23:30:52

标签: python for-loop

我的陈述如下:

[future.result() for future in as_completed(futures)]

它有效,但有时,future.result()已解析为None,这会将None放入我的数组中。如何丢弃这些None?类似于

的东西
[if future.result() is not None: future.result() for future in as_completed(futures)]

1 个答案:

答案 0 :(得分:3)

通过使用嵌套的 for ,您可以强制Nonefuture.result的返回移除到单个列表解析中功能一次

[x for future in as_completed(futures) 
   for x in (future.result(),) if x is not None]

但是,在第一次理解完成后,从列表中过滤None值会更加可读

lst = [future.result() for future in as_completed(futures)]
final_list = [x for x in lst if x is not None]