Функция any() в Python — примеры применения

Функция any() в Python используется для проверки истинности любого элемента итерируемого объекта.

Содержание

Что такое функция 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)

Результат тот же.

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *