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

标签 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)]

最佳答案

您可以通过使用嵌套强制将 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]

关于迭代数组并删除所有 None 的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46699074/

相关文章:

python - 我怎样才能用 sphinx/autodoc 列出未记录的成员?

python - Bokeh 饼图显示百分比标签倒置

python - 如何在没有错误的情况下构建 py2exe?

python - 将字典从特定索引号附加到 pandas 数据帧

c++ - 是否有理由跳过 for 循环的初始化?

mysql - 在文本文件中逐行运行作为 mySQL 查询(cmd)

javascript - 将 for in 替换为带有对象的常规 for 循环

python - Pyqt Gui 在循环中卡住

python - 如何安装libpython2.7.so

MATLAB:嵌套 for 循环每次连续迭代都需要更长的时间