Dicionários Python são uma parte útil da linguagem. Além de ter a capacidade de armazenar chaves e valores, você também pode usar métodos de dicionário para manipular esses valores e pode usar dicionários para escrever códigos mais concisos.
Use get() e setdefault() com Dicionários
Tentar acessar uma chave de dicionário que não existe resultará em um erro KeyError. Portanto, os programadores costumam escrever códigos não-ortodoxos para evitar situações como está:
Esse padrão acontece com tanta frequência que os dicionários têm um método get() quer permite que você especifique um valor padrão para retornar quando uma chave não existe no dicionário. O código a seguir é equivalente ao exemplo anterior, porém, mais Pythônico:
Se você estiver escrevendo instruções if que verificam se existe uma chave em um dicionário e define um valor padrão se a chave estiver ausente, use o método get().
Por outro lado, você pode querer definir um valor padrão se uma chave não existir. Por exemplo, se o dicionário em workDetails não tem uma chave ‘horas’, então a instrução workDetails[‘horas’] + = 10 resultaria em um erro KeyError. Você pode adicionar um código que verifique a ausência da chave e defina um valor padrão:
O exemplo anterior é Não-Pythônico. Como esse padrão também é comum, os dicionários têm um método setdefault() mais pythônico. O código a seguir é equivalente ao exemplo anterior:
Se você estiver escrevendo instruções if que verificam se uma chave existe em um dicionário e definem um valor padrão se a chave estiver ausente, use o método setdefault().
Python usa dicionários em vez de uma instrução Switch
Linguagens como Java possuem uma instrução switch, que é um tipo de instrução if-elif-else que executa código com base nos valores de uma única variável ou expressão. O Python não tem uma instrução switch, mas uma instrução switch é semelhante ao seguinte código Python, que define a variável ‘feriado’ com base no valor da variável ‘estacao’:
# Exemplo Não-Pythônico
if estacao == ‘Inverno’:
feriado = ‘Natal’
elif estacao == ‘Primavera’:
feriado = ‘Páscoa’
elif estacao == ‘Verão’:
feriado = ‘Dia da Independência Americana’
elif estacao == ‘Outono’:
feriado = ‘Halloween’
else:
feriado = ‘Dia de folga’
Manipular o código usando instruções if para imitar as instruções switch não é Pythônico. Por padrão, as instruções de switch Java têm “fall-through” que requer cada final de bloco com uma instrução break. Caso contrário, a execução continua no próximo bloco. Esquecer de adicionar esta instrução break é uma fonte comum de bugs. No entanto, todas as instruções if-elif em nosso exemplo Python não são muito melhores, pois podem ser excessivamente prolixas. Alguns programadores Python preferem configurar um valor de dicionário em vez de usar instruções if-elif. O seguinte código conciso e Pythônico é equivalente ao exemplo anterior:
# Exemplo Pythônico
feriado = {‘Inverno’: ‘Natal’,
‘Primavera’: ‘Páscoa’,
‘Verão’: ‘Dia da Independência Americana’,
‘Outono’: ‘Halloween’}.get(estacao, ‘Dia de folga’)
Este código é apenas uma única instrução de atribuição. O valor armazenado em feriado é o valor de retorno da chamada do método get(), que retorna o valor da chave para a qual a estacao está definida. Se a chave da estacao não existir, get() retornará ‘Dia de folga’. Usar um dicionário resultará em um código mais conciso, mas também pode tornar seu código mais difícil de ler. Depende de você usar esta convenção ou não.
Fonte: https://inventwithpython.com/blog/2019/06/05/pythonic-ways-to-use-dictionaries
Este artigo foi importado automaticamente por fazer parte do Planetário Dev. Quer fazer parte deste HUB de conteúdos? Faça parte do Planetário e veja as vantagens.
Não tem site ou blog? Seja um autor do site e ainda pode ser remunerado.
Mais sobre Newsletters?
32 melhores newsletters sobre negócios, startups e tecnologia para assinar em 2022
Leia também: