gpt4 book ai didi

Python:在for循环中使用理解

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:28 25 4
gpt4 key购买 nike

我使用的是 Python 2.7。我有一个列表,我想使用 for 循环根据某些条件迭代该列表的一个子集。这是我想做的事情的说明:

l = [1, 2, 3, 4, 5, 6]
for e in l if e % 2 == 0:
print e

在我看来,它非常简洁和 Pythonic,除了语法错误这个小问题外,在各个方面都很可爱。这种替代方案有效:

for e in (e for e in l if e % 2 == 0):
print e

但丑陋如罪。有没有一种方法可以直接将条件添加到 for 循环构造中,而无需构建生成器?

编辑:您可以假设我实际想要对 e 执行的处理和过滤比上面的示例更复杂。处理尤其不属于一行。

最佳答案

简单易读的解决方案有什么问题:

l = [1, 2, 3, 4, 5, 6]
for e in l:
if e % 2 == 0:
print e

您可以拥有任意数量的语句,而不仅仅是一个简单的 print e,而且没有人需要绞尽脑汁来弄清楚它的作用。

如果您还需要将子列表用于其他用途(不仅仅是迭代一次),为什么不构建一个新列表:

l = [1, 2, 3, 4, 5, 6]
even_nums = [num for num in l if num % 2 == 0]

现在遍历 even_nums。多一行,更具可读性。

关于Python:在for循环中使用理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com