Maneira mais rápida de checar se valor existe em uma lista em Python
Neste artigo você vai aprender a como checar se valor existe em uma lista em Python, da maneira mais performática possível

Fala programador(a), beleza? Bora aprender mais sobre listas e Python!
Temos várias formas de verificar se um valor existe em uma lista utilizando o Python
Porém a mais rápida das abordagens é com o operador in
Basta ter a lista e compará-lo a algum valor, veja um exemplo prático:
x = [1, 2, 3, 4, 5]
if 3 in x:
print("Encontrou!")
Além da sua agilidade em encontrar o valor, perceba também a simplicidade de sua sintaxe
Podemos atribuí-lo a condicionais, como no exempo acima e pronto!
Receberemos respostas como true e false, booleanos
True indica que o valor está presente na lista e False indica que não está
Conclusão
Neste artigo você aprendeu a como checar se valor existe em uma lista em Python
Utilizamos o operador in, que pode ser aplicado facilmente no código
Colocamos dois parâmetros:
- Primeiro o valor que desejamos checar;
- O operador in;
- E por último a lista em que estamos buscando o valor;
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
A resposta será true ou false, dependendo se o elemento se encontra na lista ou não
Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!
Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!
Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias
O link acima contém um cupom de desconto para os cursos!
E se eu quiser checar o contrário, que o valor NÃO existe?
Pra isso existe o not in, o irmão do in
Ele faz exatamente o caminho oposto: devolve True quando o valor NÃO está na lista
if 10 not in x:
print("Não encontrou!")
Repare que fica bem mais legível que escrever if not 10 in x, e o resultado é o mesmo booleano
Sempre que a sua condição for "se não estiver na lista, faça tal coisa", o not in é o caminho 🙂
Achei o valor, mas e a posição dele na lista?
O in responde só sim ou não
Se você precisa saber ONDE o valor está, quem faz esse trabalho é o método index()
print(x.index(20))
Tome cuidado! Se o valor não existir na lista, o index() não devolve False nem None, ele levanta um ValueError e derruba a execução do seu script
Por isso o combo mais seguro é checar primeiro e só depois pedir a posição:
if 20 in x:
print(x.index(20))
Dois métodos, cada um no seu papel: o in diz se existe, o index() diz onde está
E pra saber quantas vezes o valor aparece?
Aí entra o count()
print(x.count(2))
Vale entender o PORQUÊ de não usar o count() só pra checar existência: ele percorre a lista inteira pra fechar a conta, enquanto o in para assim que encontra o primeiro item
Ou seja: se você só quer saber SE existe, fica no in
Se você quer saber QUANTAS vezes existe, aí sim o count()
Por que o in é a forma mais rápida de escrever isso?
Aqui é o porquê antes do como
Quando você faz valor in lista, o Python vai comparando item por item até achar o que você pediu (ou até a lista acabar)
É o mesmo trabalho que um for com if dentro faria, só que sem você escrever o laço, sem variável de controle e sem break
Compare as duas versões:
# na mão
encontrou = False
for item in x:
if item == 3:
encontrou = True
break
# com o operador in
encontrou = 3 in x
Mesma ideia, uma linha, muito menos chance de errar
E se a sua lista é grande e você vai fazer checagem atrás de checagem no mesmo conjunto de dados, vale converter pra set:
nomes_set = set(nomes)
if "bruno" in nomes_set:
print("Encontrou!")
O set (assim como o dicionário) busca por hash, ele não precisa varrer item a item
Detalhe importante: set não guarda a ordem e não aceita valores repetidos, então só troque quando tudo que você precisa saber é se o valor existe
Três casos que pegam o pessoal de surpresa
O in não serve só pra lista, e é justamente aí que mora a pegadinha
Em string ele checa substring: "ana" in "banana" devolve True, porque ele procura o pedaço dentro do texto
Se você quer ignorar isso, normalize antes:
busca = "Python".lower()
if busca in linguagens:
print("Encontrou!")
Em dicionário ele olha as CHAVES, não os valores: pra procurar nos valores você precisa ser explícito com .values()
pessoa = {"nome": "ana", "cidade": "curitiba"}
print("nome" in pessoa)
print("ana" in pessoa.values())
Tome cuidado com esses três, é onde o retorno vem diferente do que a pessoa esperava
E se a lista for de dicionários ou de objetos?
O in compara o item INTEIRO, então ele não enxerga um campo lá dentro
Procurar "ana" numa lista de dicionários simplesmente devolve False, mesmo que exista um dicionário com esse nome
Pra esse caso o caminho é o any() com uma expressão geradora:
usuarios = [{"nome": "ana"}, {"nome": "bruno"}]
print("Encontrou!")
O any() também para no primeiro resultado verdadeiro, igual o in, então você não paga o preço de varrer o resto à toa
E dá pra usar a mesma ideia com qualquer condição, não só igualdade:
if any(n > 10 for n in numeros):
print("Tem número maior que 10 aqui!")
Bora ver na prática? Roda esse trecho aí e troca a condição, é o tipo de coisa que gruda melhor testando 😀
Perguntas rápidas sobre checar valor em lista no Python
O operador in funciona em tupla e em string também?
Sim, ele funciona em qualquer sequência
Em tupla o comportamento é o mesmo da lista, e em string ele checa se aquele pedaço de texto aparece dentro do texto maior
Qual a diferença entre in e index()?
O in responde se o valor existe e devolve True ou False
O index() devolve a posição do valor, e levanta um ValueError quando o valor não está lá
Como checar se o valor NÃO está na lista?
Com not in, assim: if valor not in lista
Dá pra checar vários valores de uma vez?
Dá, combinando com all() ou any()
O all() só devolve True se TODOS estiverem na lista, o any() devolve True se pelo menos um estiver
O in diferencia maiúscula de minúscula?
Diferencia sim
Se precisar ignorar, padronize os dois lados com .lower() antes de comparar
E foi além do básico: vimos o not in pro caso contrário, o index() pra descobrir a posição (com o cuidado do ValueError), o count() pra contar ocorrências, o set pra quando a checagem se repete muito e o any() pra procurar dentro de lista de dicionários
Guarda a regrinha: in pra saber SE existe, index() pra saber ONDE está, count() pra saber QUANTAS vezes
Com isso você cobre praticamente todo cenário de busca em lista no dia a dia 😀
Leia também
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
