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

问题:

我知道如何在单独的行上使用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])

但是我找不到的是一个很好的例子,它是一个复制和学习的例子,演示了一组复杂的命令(不仅仅是“print x”),它们是在一个for循环和一些if语句的组合之后发生的。我期望的东西看起来像:

for x in xyz if x not in a:
    print(x...)

这是不是python应该工作的方式?

回答:

你可以使用这样的generator expressions

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

for x in gen:
    print x

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Pythonic way to combine FOR loop and IF statement

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 60 = 66