Resumo: neste tutorial, você aprenderá como usar a any()
função Python para verificar se algum elemento de um iterável é verdadeiro.
Introdução à função any() do Python
A any()
função aceita um iterável e retorna verdadeiro se qualquer elemento do iterável for verdadeiro:
any(iterable)
Linguagem de código: Python ( python )
Se o iterável estiver vazio, a any()
função retornará falso.
Tecnicamente, a any()
função é equivalente ao seguinte:
def any(iterable):
for elem in iterable:
if elem:
return True
return False
Linguagem de código: Python ( python )
Ao usar a any()
função, você pode evitar for
loops e tornar seu código mais conciso.
Observe que se quiser verificar se todos os elementos de um iterável são verdadeiros, você pode usar a all()
função.
Exemplos de funções any() em Python
Vejamos alguns exemplos de uso da any()
função.
1) Exemplos simples de funções any()
O exemplo a seguir usa a any()
função que verifica se uma lista possui algum número que não seja zero:
scores = [0, 4, 1, 2]
print(any(scores)) # True
Linguagem de código: Python ( python )
Como todos os números diferentes de zero são avaliados como verdadeiros e as pontuações contêm números que não são zero, o resultado é verdadeiro.
O exemplo a seguir usa a any()
função para verificar se uma lista contém pelo menos uma string não vazia:
names = ['','','Jane']
print(any(names)) # True
Linguagem de código: Python ( python )
Como a lista contém uma string não vazia, a any()
função retorna verdadeiro.
O exemplo a seguir usa a any()
função para verificar se a lista contém algum valor verdadeiro:
items = ['', False, 0, ()]
print(any(items)) # False
Linguagem de código: Python ( python )
Como todos os elementos dos itens são falsos, a any()
função retorna falso.
2) Usando a função any() do Python para verificar se uma string contém dígitos
O exemplo a seguir verifica se uma string contém algum dígito:
message = 'Python 101'
has_digit = False
for c in message:
if c.isdigit():
has_digit = True
break
print(has_digit) # True
Linguagem de código: Python ( python )
Neste exemplo, iteramos os caracteres de uma string e verificamos se cada caractere é um dígito. Nesse caso, defina o has_digit
sinalizador como falso e saia do loop.
Para torná-lo mais curto, você pode usar o any()
método com compreensão de lista .
Primeiro, use uma compreensão de lista para verificar se cada caractere de uma string é um dígito e armazene o resultado em uma lista:
message = 'Python 101'
digits = [c.isdigit() for c in message]
print(digits)
Linguagem de código: Python ( python )
Saída:
[False, False, False, False, False, False, False, True, True, True]
Linguagem de código: Python ( python )
Segundo, passe a lista de resultados (dígitos) para a any()
função:
message = 'Python 101'
digits = [c.isdigit() for c in message]
has_digit = any(digits)
print(has_digit) # False
Linguagem de código: Python ( python )
3) Usando a função any() do Python para combinar múltiplas condições com OR lógico
Suponha que você tenha muitas condições c1, c2, .. cn e precise verificar se uma dessas condições é verdadeira assim:
if c1 or c2 or ... cn:
pass
Linguagem de código: Python ( python )
Para tornar o código mais limpo, você pode combinar essas condições em um iterável e usar a any()
função assim:
conditions = (c1, c2, ...cn)
if any(conditions):
pass
Linguagem de código: Python ( python )
Por exemplo, em vez de ter isto:
x = 200
if x > 10 or x < 100 or x%2 == 0:
print(x)
Linguagem de código: Python ( python )
Saída:
200
Linguagem de código: Python ( python )
você pode usar o any()
seguinte:
x = 200
conditions = (x < 10, x < 100, x % 2 == 0)
if any(conditions):
print(x)
Linguagem de código: Python ( python )
Ele retorna o mesmo resultado.
Resumo
- Use
any()
a função Python para verificar se algum elemento de um iterável é verdadeiro.