python - 常规 Python for 循环中的 If 子句

标签 python

是否可以在 Python 中基本上执行以下操作:

for elem in my_list if elem:
    #Do something with elem...

请注意,我想特别避免使用 map、lambda 或过滤器来创建第二个提供 bool 条件的列表,并且我不想执行以下操作:

for elem in [item for item in my_list if item]:
    #Do something...

后一种方法也需要构建 bool 列表。在我的代码中,my_list 可能非常非常大。

基本上,最简单的方法就是写

for elem in my_list:
    if elem:
        #Do stuff...

但我特别希望这一切都在一行中。如果全合一不会使代码实际上与我给出的最后一个示例有任何不同,那也很好,我会继续这样做。

最佳答案

您可以使用 generator expression而不是列表理解。

for elem in (item for item in my_list if not (item=='')):
    #Do something...

关于python - 常规 Python for 循环中的 If 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8075077/

相关文章:

python - textmate >> vim for python - 初期问题 : especially indenting

python - Yagmail (Python) - 如何使用密件抄送/密件抄送发送电子邮件

python - 如何在 Python 中将一个列表拆分为两个唯一列表?

python - 如何处理多个 IO 流的 select 错误?

python - SQL Alchemy 中的 NULL 安全不平等比较?

python - 不同数量的 XOR

python - asyncio 任务已被销毁,但它正在等待

python - 数据框中基于另一列中值的位置的新列

python - 如何使用模板和 boost 将 vector 转换为 numpy 数组?

python - 如何在 Pygame 中显示 Sprite ?