我有2个Python列表,内容如下:了解Python中的任意关键字if语句
>>> clean = ['SNAT2VIP', 'http2https']
>>> ugly = ['/Common/SNAT2VIP', '/Common/http2https']
我现在需要通过清洁每个成员进行迭代,看看它是否在任何地方丑陋的存在。 “存在”,我的意思是它可以作为一个整体存在,或者作为一个丑陋的元素存在。
这是我想出了:
>>> for item in clean:
... if (word in item for word in ugly):
... print "yes"
... else:
... print "no"
...
yes
yes
工程,我expect.However,如果我添加any
,输出变化如下:
>>> for item in clean:
... if any(word in item for word in ugly):
... print "yes"
... else:
... print "no"
...
no
no
是什么any
做些什么来改变输出 ?
它的意思是“如果任何一个字(迭代丑陋的)内部存在项目,然后是打印,否则打印没有” – ha9u63ar 2015-04-01 13:38:57
在你的第一个'if',为您打造一台发电机。你永远不会评估这个生成器,但是当一个生成器被解释为一个布尔值时,它始终是“truthy”,所以它总是如此。 – 2015-04-01 13:39:43