← Все вопросы
Что делают all() и any() и чем они удобнее цикла с флагом?
15
Встретил if all(x > 0 for x in nums). Что возвращают all и any, когда что использовать, и что они выдают на пустом списке?
3 ответа
23
✓ Принятый ответ — помог автору
all(iterable) → True, если все элементы истинны; any(iterable) → True, если хотя бы один истинен.
nums = [3, 7, 1]
all(x > 0 for x in nums) # True — все положительные
any(x > 5 for x in nums) # True — есть 7
Они заменяют цикл с флагом и ещё и ленивые: all останавливается на первом ложном элементе, any — на первом истинном, не перебирая остаток. Важная ловушка с пустым списком: all([]) это True (нечего опровергнуть), а any([]) это False.
Алиса Сергеева Пустой случай реально кусает в задачах с проверками — спасибо, что напомнили · 7 месяцев назад
7
Мнемоника: all — «И» по всем, any — «ИЛИ» по всем.
-5
all возвращает True всегда.
Константин Плисов Нет, только если все элементы истинны. На [0, 1] вернёт False · 6 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.