and
и or
возвращают последний элемент, который они оценивали, но почему не встроенная функция Python any
?
Я имею в виду, что довольно легко реализовать себя таким образом, но мне все еще остается интересно, почему.
def any(l):
for x in l:
if x:
return x
return x
изменить:
Чтобы добавить к ответам ниже, вот настоящая цитата из того же списка рассылки вашего могущественного императора по этому вопросу:
Всегда ли возвращать True и False или первый faling/pass элемент? Я играл с этим еще до блога и понял, что (если последовательность пуста или все элементы не проходят тест) никогда нельзя заставить работать удовлетворительно: сбор Ничего не странно, если аргумент является итерабельным из bools, и выбор False чувствует себя странно, если аргумент - это итерабельность объектов non-bool.
Гвидо ван Россум (домашняя страница: http://www.python.org/~guido/)