Python中是否有Ruby的'any?'函数的等效实现?
在Ruby中,你可以在一个可枚举对象上调用Enumerable#any?,来检查它的元素中有没有满足你在代码块中给出的条件的元素。就像这样:
lst.any?{|e| pred(e) }
在Python中,有一个any
函数,功能类似,但它是针对一个布尔值的列表。
当然,对于一个合理大小的列表,我可以直接这样做:
any(map(pred,lst))
不过,如果我的列表非常长,我就不想先执行整个map
操作。
所以,问题是:在Python中有没有一个通用的短路any
函数?
是的,我知道自己写一个很简单,但我想使用快速的内置函数(而且也不想重复造轮子)。
1 个回答
23
any(pred(x) for x in lst)
from itertools import imap
any(imap(pred, lst))
另外