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()函数来达到这个目的。