【发布时间】:2026-01-29 02:55:02
【问题描述】:
我知道如何在单独的行上同时使用 for 循环和 if 语句,例如:
>>> a = [2,3,4,5,6,7,8,9,0]
... xyz = [0,12,4,6,242,7,9]
... for x in xyz:
... if x in a:
... print(x)
0,4,6,7,9
而且我知道当语句很简单时,我可以使用列表推导来组合这些,例如:
print([x for x in xyz if x in a])
但是我在任何地方都找不到一个很好的例子(可以复制和学习),它展示了在 for 循环和一些 if 语句的组合之后发生的一组复杂的命令(不仅仅是“打印 x”)。我期望的东西看起来像:
for x in xyz if x not in a:
print(x...)
这不是 python 应该工作的方式吗?
【问题讨论】:
-
就是这样......不要试图简化它们而使事情变得过于复杂。 Pythonic 并不意味着要避免每个显式的
for循环和if语句。 -
您可以在 for 循环中使用列表推导中生成的列表。这有点像你的最后一个例子。
-
@Chewy,正确的数据结构将使代码更快,而不是语法糖。例如,如果
a是一个列表,x in a就会很慢。 -
这是 Python,一种解释型语言;为什么有人在讨论代码有多快?
-
@ArtOfWarfare 可能是因为它被用在了不应该使用的地方。速度真的很重要。
标签: python loops if-statement for-loop