Ao trabalhar com dicionários em Python, uma tarefa comum é verificar se uma chave já existe antes de realizar uma atualização ou outra operação. Existe uma maneira simples e eficiente de fazer isso que todo programador Python deveria conhecer.
A Maneira Eficiente de Verificar uma Chave
O método mais direto para verificar se uma chave existe em um dicionário é usar a palavra-chave in
diretamente com o dicionário. Veja como você pode fazer isso:
meu_dict = {'chave1': 'valor1', 'chave2': 'valor2'}
if 'chave1' in meu_dict:
print("blah")
else:
print("boo")
Este método não é apenas mais limpo, mas também mais rápido.
Usando get()
para Fornecer um Valor Padrão
Às vezes, você pode querer fornecer um valor padrão para uma chave se ela não existir no dicionário. O método get()
é perfeito para isso:
d = {}
for i in range(100):
chave = i % 10
d[chave] = d.get(chave, 0) + 1
Este trecho de código atualizará o valor para cada chave, e se a chave não existir, ela será inicializada com 0
antes de realizar a adição.
Inicialização Padrão com setdefault()
e defaultdict
Para cenários onde você precisa garantir um valor padrão para cada chave ao atribuir, você pode usar o método setdefault()
:
d = {}
for i in range(100):
d[i % 10] = d.setdefault(i % 10, 0) + 1
Uma abordagem ainda melhor é usar o defaultdict
do módulo collections
, que automaticamente inicializa cada nova chave com um valor padrão:
from collections import defaultdict
d = defaultdict(int)
for i in range(100):
d[i % 10] += 1
Com defaultdict
, você não precisa verificar se uma chave existe antes de atualizar seu valor, pois ela será criada automaticamente com o valor padrão se não existir.
Métodos Obsoletos
Vale a pena notar que em códigos Python mais antigos, você pode encontrar o método has_key()
. Este método está obsoleto e deve ser substituído pela sintaxe chave in dict
para verificar se uma chave existe.
Resumo
Em resumo, a melhor maneira de verificar se uma chave existe em um dicionário é usar a palavra-chave in
diretamente com o dicionário. Para casos em que você precisa fornecer um valor padrão, considere usar get()
, setdefault()
ou defaultdict
do módulo collections
. Esses métodos não são apenas mais idiomáticos em Python, mas também garantem que seu código seja executado de forma eficiente.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários