Pythonic的方式来检查一个条件是否适用于列表的任何元素

我有一个Python列表,我想检查是否有任何元素是否定的。 Specman拥有列表的has()方法:

 x: list of uint; if (x.has(it < 0)) { // do something }; 

it是依次映射到列表的每个元素的Specman关键字。

我觉得这很优雅。 我查看了Python文档 ,找不到类似的东西。 我能想到的最好的是:

 if (True in [t < 0 for t in x]): # do something 

我觉得这很不雅。 有没有更好的方法来在Python中做到这一点?

any() :

 if any(t < 0 for t in x): # do something 

另外,如果你打算使用“True in …”,把它作为一个生成器expression式,所以它不需要O(n)内存:

 if True in (t < 0 for t in x): 

使用any()

 if any(t < 0 for t in x): # do something 

Python有一个内置的any()函数来达到这个目的。