Python中是否有类似于Ruby的“any?”函数的等效函数?

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

1
@perimosocordiae:生成器表达式。 - Ignacio Vazquez-Abrams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接