Есть ли в Python эквивалент Ruby 'any?' функционировать? - PullRequest
7 голосов
/ 24 февраля 2010

В Ruby вы можете вызвать Enumerable # any? для перечислимого объекта, чтобы увидеть, удовлетворяет ли какой-либо из его элементов предикату, который вы передаете в блоке. Вот так:

lst.any?{|e| pred(e) }

В Python есть функция any, которая выполняет нечто подобное, но в списке логических значений.

Конечно, для списка разумного размера я бы просто сделал:

any(map(pred,lst))

Однако, если мой список очень длинный, я не хочу выполнять всю операцию map в первую очередь.

Итак, вопрос: существует ли в Python общая функция короткого замыкания any?

Да, я знаю, что написать его самому тривиально, но я бы хотел использовать быстрые встроенные функции (а также не изобретать какие-либо колеса).

1 Ответ

21 голосов
/ 24 февраля 2010
any(pred(x) for x in lst)

альтернативно

from itertools import imap
any(imap(pred, lst))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...