All e Any no Python – Listas com Todos ou Pelo Menos um Valor
Você sabe utilizar o All e Any no Python? Hoje vamos aprender a identificar quantos itens de uma lista correspondem a uma condição.
O all() devolve verdadeiro apenas quando todos os itens da lista são verdadeiros; o any() devolve verdadeiro quando pelo menos um é. No exemplo da aula, o any() responde se existe algum saldo negativo na lista e o all() confirma se todos os saldos estão positivos.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
O que você aprende neste vídeo
Resposta rápida: A aula mostra como usar any() e all() para testar condições em listas no Python, com uma lista de saldos bancários. Você aprende que any() retorna True se pelo menos um item é verdadeiro e all() só se todos forem, e a gerar os valores lógicos com list comprehension para detectar saldo negativo numa única linha.
Neste vídeo (10 min):
- 0:45 - O problema: uma lista com o saldo da conta em vários dias e a pergunta se em algum deles ficou negativo
- 1:20 - A diferença entre as duas funções nativas:
all()exige todos os valores verdadeiros eany()basta um - 1:45 - A lista auxiliar
verificar_saldo, comTruequando o saldo do dia é menor que zero eFalsequando não é - 2:30 -
if any(lista):sobre valores lógicos imprime “foi” com pelo menos umTruee cai noelsequando todos sãoFalse - 3:25 - Com
all(), um únicoFalsejá leva aoelse; só com todosTruea condição passa - 4:20 - O
ifque imprime “teve saldo negativo” quando algum item deverificar_saldoéTrue - 5:00 - List comprehension
[item < 0 for item in saldo]para gerar a lista de verdadeiros e falsos a partir dos saldos - 6:10 - Rodar o código: o
-10da lista é detectado, e trocá-lo por10faz a saída virar “não teve saldo negativo” - 7:05 - A mesma checagem com
all(), invertendo a lógica doife testandoitem >= 0para cada saldo - 8:25 - Versão enxuta: a list comprehension escrita direto dentro do
any()e doall(), sem a lista auxiliar
Trechos do vídeo:
any()devolveTruequando pelo menos um item da lista é verdadeiro, enquantoall()só devolveTruequando todos os itens, sem exceção, são verdadeiros- Para aplicar as duas funções a números, primeiro se transforma a lista em valores lógicos com uma comparação, como
[item < 0 for item in saldo] - Perguntar se algum saldo é negativo com
any()equivale a perguntar se todos são maiores ou iguais a zero comall(), desde que a lógica doifseja invertida - Com a list comprehension dentro da própria chamada, como
any([item < 0 for item in saldo]), a verificação cabe numa linha e dispensa a lista auxiliar
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala Impressionadores! Na aula de hoje eu quero te mostrar como funciona o All e Any no Python, essas são duas funções que vão te ajudar a resolver desafios em listas no Python.
Essas funções verificam se todos os itens são verdadeiros (All) ou se apenas um deles é verdadeiro (Any).
No exemplo desta aula vamos fazer uma verificação de saldo, então vamos verificar se todos os saldos de uma lista são positivos ou se algum deles é negativo.
E vamos fazer isso utilizando as funções Any e All, além disso, vamos utilizar o list comprehension para criar essas listas de verificação. Com isso podemos utilizar um if para fazer a verificação desses itens e de fato trazer um resultado para o usuário se temos um valor negativo ou se todos os valores são positivos!
E aí! Gostou do tema? Então bora para a aula!
Vamos analisar uma lista com valores que correspondem ao saldo de uma conta, nosso objetivo é conseguir determinar se existe saldo negativo.
Para isso vamos precisar de uma lista auxiliar, esta lista vai nos dizer se o valor analisado é maior ou menor que zero retornando true ou false. Feito isso, vamos conseguir usar a função Any.
Se algum valor da lista for verdadeiro (true) a função Any resulta em Foi (conforme a função abaixo) a função Any só vai resultar Não Foi se não houver nenhum valor verdadeiro na lista, é necessário somente um para ter o resultado positivo.
saldo = [10, 100, 1500, 3000, 3000, 2900, 2800, 3000, 4500, -10, 13, 20, 50, 50, 50, 50, 50]
verificar_saldo = [false, false, false, true, false]
if any(verificar_saldo):
print("Foi")
else:
print("Não Foi")
Resultado:
FoiO All vai analisar todos os itens da lista, ou seja, o resultado só é positivo (Foi) se todos os valores da lista forem positivos.
saldo = [10, 100, 1500, 3000, 3000, 2900, 2800, 3000, 4500, -10, 13, 20, 50, 50, 50, 50, 50]
verificar_saldo = [true, true, true, true, false]
if all(verificar_saldo):
print("Foi")
else:
print("Não Foi")
Resultado:
Não FoiExemplos práticos
Vamos utilizar o Any para indicar quando o valor da lista for maior que zero (false) e se for menor que zero (true).
Na lista auxiliar vamos utilizar uma estrutura chamada List Comprehension, clique no link e veja a aula completa sobre a lógica desta estrutura.
saldo = [10, 100, 1500, 3000, 3000, 2900, 2800, 3000, 4500, -10, 13, 20, 50, 50, 50, 50, 50]
if any([item < 0 for item in saldo]): “para cada item que tem na lista de saldo quais são menor que zero?”
print("Teve saldo negativo")
else:
print("Não teve saldo negativo")
Teve saldo negativoVamos construir a mesma lógica usando o ALL
saldo = [10, 100, 1500, 3000, 3000, 2900, 2800, 3000, 4500, -10, 13, 20, 50, 50, 50, 50, 50]
if all([item >= 0 for item in saldo]): Observe que quando usamos o All invertemos o sinal de menor que, para maior ou igual >=
print("Não teve negativo")
else:
print("Teve negativo")
Teve negativoÉ dessa forma que usamos as estruturas Any e All, é importante se adaptar a construção dela, porque vamos precisar dessas funções para verificar se pelo menos um dos resultados ou todos eles correspondem, ou não, a uma condição.
Perguntas frequentes
1. Qual a diferença entre all e any no Python?
O any() funciona como um ou: basta um item verdadeiro na lista para o resultado ser verdadeiro. O all() funciona como um e: exige que todos os itens sejam verdadeiros, e um único item falso já derruba o resultado. Por isso o any() detecta exceções e o all() valida o conjunto.
2. Como usar all e any com list comprehension?
A list comprehension cria a lista auxiliar de verdadeiro e falso dentro do próprio all() ou any(), sem precisar de um for separado. Você escreve a condição para cada item da lista original e o resultado já entra na função, deixando a verificação em uma única linha.
3. Como verificar se existe saldo negativo em uma lista?
Monte a condição de negativo para cada item e passe para o any(). Se um único valor da lista for negativo, o any() devolve verdadeiro e o if imprime a mensagem de alerta. Com o all() você faz o contrário: inverte a comparação para maior ou igual a zero e valida a lista inteira.
4. Onde usar all e any no dia a dia da programação?
Sempre que precisar responder sim ou não sobre um conjunto: todos os campos do formulário foram preenchidos, algum produto ficou sem estoque, todas as notas passaram da média. Em vez de percorrer a lista com for e ir acumulando o resultado, uma linha com all() ou any() resolve.
Conclusão – All e Any no Python
Você já conhecia a estrutura All e Any? Sabia como construir essa estrutura?
Fiz essa aula curta e direto ao ponto para exemplificar para você essas duas funções importantes do Python.
Em resumo, para o Any basta que uma condição seja verdadeira para que o resultado da função retorne positivo, ou seja, pelos menos um dos valores deve corresponder a condição, já o All analisa todos os itens da lista sendo necessário que todos correspondam para um resultado positivo.
Espero que tenham gostado! Eu fico por aqui! Abraço,
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!


