Функция any() в Python — примеры применения
Функция any() в Python используется для проверки истинности любого элемента итерируемого объекта.
- Что такое функция any() в Python?
- Примеры с функцией Python any()
- 1) Простые примеры функции any()
- 2) Проверка наличия в строке цифр с помощью any()
- 3) Использование функции Python any() для объединения нескольких условий с помощью логического OR
Что такое функция any() в Python?
Функция any() принимает итерируемый объект и возвращает значение true, если хотя бы один элемент итерируемого объекта имеет значение true:
any(iterable)
Если итерируемый объект пуст, функция any() возвращает false.
Технически функция any() эквивалентна следующему:
def any(iterable): for elem in iterable: if elem: return True return False
Используя функцию any(), вы можете избежать циклов for и сделать свой код более лаконичным.
Обратите внимание: если вы хотите проверить, являются ли все элементы итерируемого объекта истинными, вы можете использовать функцию all().
Примеры с функцией Python any()
Давайте рассмотрим несколько примеров использования функции any().
1) Простые примеры функции any()
В следующем примере используется функция any(), которая проверяет, есть ли в списке число, отличное от нуля:
scores = [0, 4, 1, 2] print(any(scores)) # True
Поскольку все ненулевые числа оцениваются как истинные, а оценки содержат ненулевые числа, результат является истинным.
В следующем примере функция any() используется для проверки того, содержит ли список хотя бы одну непустую строку:
names = ['','','Jane'] print(any(names)) # True
Поскольку список содержит непустую строку, функция any() возвращает значение true.
В следующем примере функция any() используется для проверки того, содержит ли список какое-либо истинное значение:
items = ['', False, 0,()] print(any(items)) # False
Поскольку все элементы items являются ложными, функция any() возвращает false.
2) Проверка наличия в строке цифр с помощью any()
В следующем примере проверяется, содержит ли строка какую-либо цифру:
message = 'Python 101' has_digit = False for c in message: if c.isdigit(): has_digit = True break print(has_digit) # True
В этом примере мы перебираем символы строки и проверяем, является ли каждый символ цифрой. Если да, установите флаг has_digit в значение false и выйдите из цикла.
Чтобы сделать его короче, можно использовать метод any() с генератором списков.
Сначала воспользуемся функцией включения списков, чтобы проверить, является ли каждый символ строки цифрой, и сохранить результат в списке:
message = 'Python 101' digits = [c.isdigit() for c in message] print(digits)
Выход:
[False, False, False, False, False, False, False, True, True, True]
Во-вторых, передайте список результатов (цифры) в функцию any():
message = 'Python 101' digits = [c.isdigit() for c in message] has_digit = any(digits) print(has_digit) # False
3) Использование функции Python any() для объединения нескольких условий с помощью логического OR
Предположим, у вас есть много условий c1, c2, .. cn и вам нужно проверить, выполняется ли одно из этих условий, например:
if c1 or c2 or ... cn: pass
Чтобы сделать код чище, можно объединить эти условия в итерируемый объект и использовать функцию any() следующим образом:
conditions =(c1, c2, ...cn) if any(conditions): pass
Например, вместо этого:
x = 200 if x > 10 or x < 100 or x%2 == 0: print(x)
Выход:
200
Вы можете использовать any() следующим образом:
x = 200 conditions =(x < 10, x < 100, x % 2 == 0) if any(conditions): print(x)
Результат тот же.