Python中是否有Ruby的'any?'函数的等效实现?

9 投票
1 回答
1703 浏览
提问于 2025-04-15 19:39

在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))

另外

撰写回答