2016-11-24 51 views
0

所以我試圖做一行來檢查Python列表中的單個元素是否符合條件,但是我的當前代碼將保持循環進行,即使它擊中一個「真」標誌以及因此,只有最後一個元素計數的檢查:如何通過Python中的整個列表檢查條件滿足

if [[CheckStatus(value, outsidevalue)] for value in valuelist] is True: 
    magic 

(的checkStatus返回True或False的相比outsidevalue每一個值,是應該接受的是,如果爲真單值返回True)

+0

請參閱'所有'和'任何'內置功能。 –

回答

1

將始終爲false:

if [[CheckStatus(value, outsidevalue)] for value in valuelist] is True: 

因爲您將listboolean進行比較。

你想要的是any:在發電機理解

if any(CheckStatus(value, outsidevalue) for value in valuelist): 

any迭代,呼喚你的所有元素的功能,直到True被找到(注意,內方括號已被刪除,而我們沒有需要創建一個列表理解,只是一個發電機的理解,這是更快)

+0

這樣做,謝謝 – Grak

相關問題