我有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