Итератор — это объект, содержащий счетное количество значений. Итератор Python — это объект, по которому можно выполнять итерацию, что означает, что вы можете пройти через все значения внутри итератора.

Как работает функция any() в Python?
Python any() — это встроенная функция, которая возвращает True, если какой-либо элемент итерируемого объекта имеет значение True, в противном случае возвращает False. Если итерируемый объект пуст, any() возвращает False. Функция any() является противоположностью функции all().
Синтаксис
|
1 |
any(iterable) |
Метод any() принимает итерируемый объект в Python. Эти итерации — список, словарь или кортеж Python.
Параметры
Метод any() возвращает следующие значения.
- True, если хотя бы один элемент итерации имеет истинное значение.
- False, если все элементы ложны или если итерация пуста.
#Any() со словарем
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
dictA = {0: 'False', 1: 'False'} print(any(dictA)) dictB = {1: 'True', 21: 'True'} print(any(dictB)) dictC = {1: 'True', False: 0} print(any(dictC)) dictD = {} print(any(dictD)) dictE = {'0': 'True'} print(any(dictE)) dictF = {0: 'True'} print(any(dictF)) |
Вывод:
|
1 2 3 4 5 6 7 8 |
➜ pyt python3 app.py True True True False True False ➜ pyt |
В Dictionary функция any() проверяет только ключи словаря, а не значения. Неважно, являются ли они True или False.
В приведенных выше примерах вы можете видеть, что если значение любого ключа словаря равно 1 или True, то оно возвращает True.
Если какой-либо из словарей пуст или все ключи равны 0 или False, то он вернет False.
Метод #Any() со списком
Давайте рассмотрим пример итератора Python List с методом any().
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# app.py listA = ['Emilia Clarke', 'Millie Bobby Brown', 'Jennifer Aniston'] print(any(listA)) listB = [] print(any(listB)) listC = [1, 0] print(any(listC)) listD = [0, False] print(any(listD)) |
Теперь посмотрите на результат.
|
1 2 3 4 5 6 |
➜ pyt python3 app.py True False True False ➜ pyt |
Таким образом, как и в словаре, если какое-либо из значений списка равно 1 или True, или любому значению, кроме 0 или False, то он вернет True.
Если весь список пуст или все значения равны 0 или False, возвращается False.
Метод #Any() со строкой
Давайте проверим итератор String с помощью метода any().
|
1 2 3 4 5 6 7 |
# app.py strA = 'Millie Bobby Brown' print(any(strA)) strB = '' print(any(strB)) |
См. следующий вывод.
|
1 2 3 4 |
➜ pyt python3 app.py True False ➜ pyt |
Из приведенных выше примеров строк мы можем сказать, что если строка пуста, то она вернет False, в противном случае вернется True.
#Any() с Python Tuple
Давайте рассмотрим пример итератора кортежа Python с методом any().
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# app.py tupA =('Millie Bobby Brown', 'Finn Wolfhard', 'Noah Schnapp') print(any(tupA)) tupB =() print(any(tupB)) tupC =(0, False) print(any(tupC)) tupD =(1, False) print(any(tupD)) tupE =('0', 'False') print(any(tupE)) |
См. следующий вывод.
|
1 2 3 4 5 6 7 |
➜ pyt python3 app.py True False False True True ➜ pyt |
Таким образом, он возвращает True, если какой-либо из элементов имеет значение True. Он возвращает False, если кортеж пуст или все значения имеют значение False или 0.
Метод Any() можно рассматривать как последовательность OR-операций над предоставленными итерируемыми объектами.
Мы можем думать о any() и all() как о последовательности логических операторов or и and соответственно.
#Truth table
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
+-----------------------------------------+---------+---------+ | | any | all | +-----------------------------------------+---------+---------+ | All Truthy values | True | True | +-----------------------------------------+---------+---------+ | All Falsy values | False | False | +-----------------------------------------+---------+---------+ | One Truthy value(all others are Falsy) | True | False | +-----------------------------------------+---------+---------+ | One Falsy value(all others are Truthy) | True | False | +-----------------------------------------+---------+---------+ | Empty Iterable | False | True | +-----------------------------------------+---------+---------+ |
Одна важная вещь, которую нужно знать о методах any() и all(), заключается в том, что они будут сокращать все выполнение, как только узнают результат. Преимущество заключается в том, что целые итерации не нужно потреблять.
Вот реализация Python для any() и all().
|
1 2 3 4 5 6 7 8 9 10 11 |
def any(iterable): for i in iterable: if i: return True return False # for an empty iterable, any returns False! def all(iterable): for i in iterable: if not i: return False return True # for an empty iterable, all returns True! |
