Функция all()
и any()
в Python позволяет проверить истинность каждого элемента в итерируемом объекте, объектом может быть как список, кортеж, множество.
О функции all()
Данная функция возвращает логическое (bool) значение True
, если все элементы в итерируемом типе истинны.
Рассмотрим пример функции all()
list_true = [True, True, True, 'Word']
print(all(list_true), type(list_true))
tuple_list = (True, True, False, 0, '')
print(all(tuple_list), type(tuple_list))
set_list = {True, True, 'Word'}
print(all(set_list), type(set_list))
Результаты:
>>> True <class 'list'>
>>> False <class 'tuple'>
>>> True <class 'set'>
>>> True <class 'list'>
Пояснения:
- В первом случае списка, у нас есть значения True, и строка, любые непустые строки всегда возвращают
True
. - Во втором случае кортежа, у нас есть 2 значения True, False, 0 и пустая строка. False, 0, пустая строка - возвращают всегда
False
. - В третьем случае аналогично первому, только это множество.
- В четвертом случае, если список совершенно пуст,
all()
всегда будет возвращатьTrue
.
Пример со сравнением:
num_list = [1, 2, 3, 4, 5, 6]
print (all(num > 2 for num in num_list))
Результат: False
Пояснения:
- В функции
print()
используется синтаксис включения списка, где циклfor
перебирает элементыnum_list
. Каждый элемент вnum_list
сравнивается с 2, и если он больше, он становитсяTrue
, иначе —False
. - После функция
all()
проверяет истинность каждого элемента.
О функции any()
Функция any()
возвращает True
, если хотя бы один элемент во всем итерируемом типе имеет значение True.
Рассмотрим пример с функцией any():
list_true = [True, False, True, 'Word']
print(any(list_true), type(list_true))
tuple_list = (False, False, False, 0, '')
print(any(tuple_list), type(tuple_list))
set_list = {True, True, 'Word', 0.0}
print(any(set_list), type(set_list))
empty_list = []
print(any(empty_list), type(empty_list))
Результаты:
>>> True <class 'list'>
>>> False <class 'tuple'>
>>> True <class 'set'>
>>> False <class 'list'>
Пояснения:
- В первом случае списка, у нас есть значения True, и строка, любые непустые строки всегда возвращают
True
. - Во втором случае кортежа, у нас есть 2 значения False, False, 0 и пустая строка. False, 0, пустая строка - возвращают всегда
False
. Т.е нет ни одного истинного значения. - В третьем случае мы добавили вещественное
0.0
, но так как истинные значения есть, все равно будетTrue
. - В четвертом случае, если список совершенно пуст,
any()
всегда будет возвращатьFalse
.
Пример со сравнением:
num_list = [1, 2, 3, 4, 5, 6]
print (any(num > 2 for num in num_list))
Результат: True
Пояснения:
- В функции
print()
используется синтаксис включения списка, где циклfor
перебирает элементыnum_list
. Каждый элемент вnum_list
сравнивается с 2, и если он больше, он становитсяTrue
, иначе —False
. - Наличие хотя бы одного истинного элемента приводит к тому, что функция
any(
) возвращаетTrue
.