Aprenda os fundamentos do Python em 30 Dias — Dia 5 (Dicionários)
Original: medium.com – devops-challenge
Os dicionários são mapeamento não ordenado de chaves únicas imutáveis para valores mutáveis. Dicionários são delimitados com chaves e contêm pares key-value separados por vírgula com cada par encadeado por dois pontos.
>>> teste = {"fname": "pra", "lname": "lak", "idade": 30} >>> teste {'Fname': 'pra', 'lname': 'lak', 'idade': 30}
Os valores são acessíveis por chaves
>>> teste["fname"] pra
Nunca devemos confiar na ordem dos itens no dicionário (ela é aleatória) e pode até variar entre diferentes execuções do mesmo programa.
De maneira similar às listas, a cópia do dicionário é superficial por padrão, copiando apenas as referências aos objetos de chave e de valor, e não os próprios objetos de valor
Duas maneiras de copiar o dicionário
1: Usar o método copy()
>>> teste1 = teste.copy() >>> teste1 {'Fname': 'test', 'lname': 'lak', 'age': 30}
2: Simplesmente passando para o construtor dict
>>> teste2 = dict(teste) >>> teste2 {'Fname': 'test', 'lname': 'lak', 'age': 30} ## Atualizando Dicionário ```python >>> teste["valor"] = 5 >>> teste {'fname': 'teste', 'lname': 'lak', 'idade': 30, 'valor': 5}
Dicionários são iteráveis e podemos usá-lo com loops
>>> for i in teste: ... print("Valor da key " + i + " => " + str(teste[i])) ... Valor da key fname => pra Valor da key lname => lak Valor da key idade => 30 Valor da key valor => 5
Se estamos à procura de chaves, então temos método keys()
>>> teste.keys() dict_keys(['fname', 'lname', 'idade', 'valor'])
Da mesma forma, podemos procurar apenas valores mediante o uso do método values()
>>> teste.values() dict_values(['pra', 'lak', 30, 5])
Para se obter ambas as chaves e valores (key-values) temos o método items()
>>> teste.items() dict_items([('fname', 'pra'), ('lname', 'lak'), ('idade', 30), ('valor', 5)])
Só para resumir
1. chaves
- Deve ser único
- Tipo imutável (int, float, string, tuple, bool)
- Cuidado com o tipo float como uma chave (se float tem problema de precisão, podemos não ser capazes de descobrir o que estamos procurando)
2. valores
- Qualquer tipo (imutável ou mutável)
- Pode ser duplicado
- Valores de dicionário podem ser listas, até mesmo outros dicionários
3. Nenhuma ordem para chaves e valores
A biblioteca padrão do Python fornece o módulo pprint
(cópia bonita [pretty print] ) que sabe como imprimir de maneira elegante todas as estruturas de dados, incluindo dict.
>>> from pprint import pprint >>> pprint(teste) {'fname': 'pra', 'idade': 30, 'lname': 'lak', 'valor': 5}
Compreensão do Dicionário
A compreensão de dicionários permite expressar a criação de dicionários em tempo de execução
Sintaxe
{key: value for(key, value) in iterável}
A compreensão de dicionários é bastante útil se quisermos inverter o dicionário (não é tão comum como a compreensão de lista além de tornar o código mais difícil de ler)
>>> import pprint >>> D1 = {'a': 1, 'b': 2, 'c': 3} >>> D2 = {v: k for k,v in D1.items()} >>> pprint(D2) {1: 'a', 2: 'b', 3: 'c'}
Final da lição do Dia 05, Em caso de dúvidas ou qualquer outra discussão, este é o link para o canal (Comunicação somente em Inglês – english only) Python Slack channel http://devops-myworld.slack.com
Copyright – Learn Python Fundamental in 30 Days — [medium.com – devops-challenge] http://medium.com/devops-challenge
Deixe um comentário