小编典典

结合 FOR 循环和 IF 语句的 Pythonic 方式

all

我知道如何在单独的行上同时使用 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应该工作的方式吗?


阅读 81

收藏
2022-04-06

共1个答案

小编典典

您可以像这样使用生成器表达式

gen = (x for x in xyz if x not in a)

for x in gen:
    print(x)
2022-04-06