2016-11-24 79 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

相关问题