Функции Python any() и all() – объяснение с примерами

1656021369 funkczii python any i all – obyasnenie s primerami

Во время кодирования на Python вам когда-нибудь приходилось проверять, любой предмет или все элементы в итеративном вычислении оценивают до True? В следующий раз, когда вам понадобится это сделать, обязательно воспользуйтесь отличными функциями any() и all().

В этом учебнике мы узнаем о Python any() и all() функции и используйте простые примеры, чтобы понять, как они работают.

Логический тип данных в Python

Прежде чем мы прыгнем any() и all(), давайте быстро просмотрим тип данных Boolean в Python. Вы можете позвонить bool() на любом объекте Python, чтобы получить его истинное значение. Вы можете запустить следующие примеры кода в вашей любимой IDE.

# truth value of None is False
print(bool(None))
# Output
False

# truth value of an empty string ("") is False
print(bool(""))
# Output
False

# truth value of an empty list (or any iterable) is False
print(bool([]))
# Output
False

# truth value of 0 {int (0), float (0.0) and complex (0j)} is False
print(bool(0))
# Output
False

Как показано во фрагменте выше,

  • None имеет истинное значение False,
  • Число ноль (0) – представление целого, с плавающей запятой и комплексного числа 0 – все имеют истинную ценность Falseи
  • Все пустые итерации, такие как списки, кортежи и строчки, имеют значение истинности False.

При этом все достаточно интуитивно понятно отличный от нуля ценности и непустой iterables имеют значение истинности True.

Как использовать функцию any() в Python

Давайте разберемся в синтаксисе any() функции, посмотрите на несколько простых примеров, а затем перейдите к более полезным примерам.

👉 Синтаксис: any(iterable)

  • Возвращает True если bool(x) есть True для любого x в итерационном.
  • Возвращает False если итерация пуста.

Поэтому, any() функция принимает итератор как аргумент и возвращает True при условии, что по крайней мере один из элементов итерации есть True.

Вот несколько простых примеров, чтобы проверить, как any() функция работает:

list_1 = [0,0,0,1,0,0,0,0]
# any(a list with at least one non-zero entry) returns True
print(any(list_1))
# Output
True

list_2 = [0j,0,0,0.0,0,0,0.0,0]
# any(a list of zeros) returns False
print(any(list_2))
# Output
False

list_3 = [True, False, False]
# any(a list with at least one True value) returns True
print(any(list_3))
# Output
True

list_4 = ["","","code more"]
# any(a list with at least one non-empty string) returns True
print(any(list_4))
# Output
True

list_5 = ["","",""]
# any(a list of empty strings) returns False
print(any(list_5))
# Output
False

Как использовать функцию any() Python для проверки цифр в строке

Давайте теперь воспользуемся any() функция проверки наличия любой цифры в строке. Давайте запишем шаги.

  • Чтобы проверить: есть ли цифры в строке?
  • Проведите цикл по строке, чтобы получить доступ к каждому символу в строке.
  • Убедитесь, что каждый символ является цифрой, вызвав isdigit() метод на нем.
  • isdigit() возвращается True если тестируемый символ является цифрой, иначе он возвращает False.

Осмысление списка может быть очень полезно в сборе всех этих значений истинности в списке. Вот краткий итог:

 # List Comprehension

 [output_expression for every_item in an_iterable]
     |
     |
     V
    result of doing something on each item in the iterable
    
 # In essence, Loop through the iterable, do something on each item and
 return the result of the operation.
 

Как показано во фрагменте кода ниже, наш пример строки coding**is**cool**345 содержит цифры.

Поэтому звонит any() функция в строке должна вернуться True. Мы используем понимание списка, чтобы получить список True и False значение в зависимости от того, является ли символ цифрой или нет.

my_string = "coding**is**cool**345"
are_there_digits = [char.isdigit() for char in my_string]
print(any(are_there_digits))

# Output
True

Обратите внимание, как are_there_digits – это список, содержащий столько элементов, сколько длина строки.

Для каждого символа в строке есть соответствующее значение истинности – True если символ является цифрой, и False если символ не является цифрой, как показано ниже.

print(are_there_digits)

# Output
[False, False, False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, True, True, True]

Как использовать функцию any() Python для проверки букв в строке

Возьмем еще один подобный пример. На этот раз проверим наличие букв в строке.

Тестируемая строка ***456278))) не содержащий букв – звонит any() возвращается False как и ожидалось. Для каждого символа в строке вызывайте isalpha() способ проверить, есть ли это письмо.

my_string = "***456278)))"
num = [char.isalpha() for char in my_string]
print(any(num))

# Output
False

The is_letter является списком False значение, как проверено ниже:

print(is_letter)

# Output
[False, False, False, False, False, False, False, False, False, False, False, False]

Как использовать функцию any() Python для сочетания нескольких условий с логическим ИЛИ

Скажем, вы решили быть более продуктивными и запишите список, показанный ниже. Однако вы решили не быть строгим к себе и решили, что вы можете есть много сладостей, если один из пунктов в списке происходит! 😀

любой

Обратите внимание, что у нас есть несколько условий, которые нужно рассмотреть, но выбирайте сладости, даже если одно из них соответствует True.

Разве это не очень похоже на if оператор, где вам нужно проверить, связаны ли несколько условий логическими or оператор оценить до True? Да, это и есть any() функция может пригодиться для этого.

Предположим, у вас есть N условия c1, c2, c3…, cN. Рассмотрим псевдокод ниже:

if c1 or c2 or ... c_(N-1) or CN:
	# DO THIS

else:
	# DO THIS

Теперь вы можете собрать все эти условия в итерационном, скажем, список или кортеж, а затем вызвать any() на этой итерации, чтобы проверить, есть ли одно или несколько условий True, как показано ниже. Разве это не просто? 😀

conditions = [c1,c2,..., c_N]

if any(conditions):
	# DO THIS
else:
	# DO THIS

Как использовать функцию all() в Python

Начнем с синтаксиса all() функция.

👉 Синтаксис: all(iterable)

  • Возвращает True если bool(x) есть True для всех значений x в итерационном.
  • Возвращает True если итерация пуста.

The all() функция принимает итерационный аргумент как аргумент, возвращает True только в том случае, если все элементы в итерации оцениваются до True или если итерация пуста. Во всех остальных случаях, all() функция возвращает False.

Как использовать функцию all() Python для проверки букв в строке

Рассмотрим подобные примеры, чтобы проверить некоторые характеристики строк.

Тестовая строка coding**is**cool содержит специальный символ * кроме букв. Итак, когда мы проверяем, все ли символы в строке являются буквами, с помощью all() функции, мы должны получить False.

my_string = "coding**is**cool"
are_all_letters = [char.isalpha() for char in my_string]
print(all(are_all_letters))
# Output
False

print(are_all_letters)
# Output
[True, True, True, True, True, True, False, False, True, True, False, False,
True, True, True, True]

Обратите внимание, как список are_all_letters имеет False значение во всех позициях, где * присутствует в нашей строке.

Как использовать функцию all() Python для проверки цифр в строке

Теперь давайте проверим, все ли символы в строке являются цифрами, используя all() функция. Тестовая строка 56456278 содержит только цифры, поэтому вызов all() должно вернуться True поскольку понимание списка дает нам список True ценности.

my_string = "56456278"
are_all_digits = [char.isdigit() for char in my_string]
print(all(are_all_digits))
# Output
True

print(are_all_digits)
# Output
[True, True, True, True, True, True, True, True]

Как использовать функцию all() Python для сочетания нескольких условий с логическим и

Рассмотрим следующий пример. На этот раз вы боретесь за iPad, а условия более жесткие. Вы должны завершить все задач в списке, чтобы получить iPad от своего двоюродного брата.😀

все

Теперь это очень похоже на использование an if оператор, чтобы проверить, связаны ли несколько условий логическими and оператор оценить до Trueкак показано ниже:

if c1 and c2 and ... c_(N-1) and CN:
	# DO THIS

else:
	# DO THIS

Вы могли бы использовать all() Функция, чтобы сделать это еще более сжатым, собрав условия в итераторе, а затем вызывая all() функция итерации.

conditions = [c1,c2,..., c_N]

if all(conditions):
	# DO THIS
else:
	# DO THIS

Вывод

Надеюсь, это руководство помогло вам понять any() и all() функции в Python.

До встречи в другом сообщении. До тех пор, счастливого обучения!

Добавить комментарий

Ваш адрес email не будет опубликован.