Ответ 1
Используя any
:
>>> data = [False, False, False]
>>> not any(data)
True
any
вернет True, если в iterable есть значение истины.
Как вернуть "false", потому что все элементы "false"?
Данный список:
data = [False, False, False]
Используя any
:
>>> data = [False, False, False]
>>> not any(data)
True
any
вернет True, если в iterable есть значение истины.
В принципе существуют две функции, которые обрабатывают итерацию и возвращают True или False, в зависимости от того, какие элементы логических значений последовательности оцениваются.
all(iterable)
возвращает значение True, если все элементы iterable
считаются истинными значениями (например, reduce(operator.and_, iterable)
).
any(iterable)
возвращает значение True, если хотя бы один элемент iterable
является истинным значением (опять же, используя функциональный материал, reduce(operator.or_, iterable)
).
Используя функцию all
, вы можете сопоставить operator.not_
над своим списком или просто создать новую последовательность с отрицательными значениями и проверить, что все элементы новой последовательности верны:
>>> all(not element for element in data)
С помощью функции any
вы можете проверить, что хотя бы один элемент является истинным, а затем отрицает результат, так как вам нужно вернуть False
, если есть истинный элемент:
>>> not any(data)
Согласно закону Де Моргана, эти два варианта вернут тот же результат, но я предпочел бы последний (который использует any
), потому что он короче, читабельнее (и может быть интуитивно понято как "есть", t истинное значение в данных ") и более эффективно (поскольку вы не создаете никаких дополнительных последовательностей).
Давай, ребята, он попросил вернуть "Истину", был ли какой-нибудь Истинный. Говоря то же самое, False, когда все являются ложными.
any(data)