我的陈述如下:
[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)]
答案 0 :(得分:3)
通过使用嵌套的 for ,您可以强制将None
从future.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]