我的陈述如下:
[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)]
最佳答案
您可以通过使用嵌套强制将 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]
关于迭代数组并删除所有 None 的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46699074/