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

Anúncios

Escrito por zrhans

Professor at UFSM

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s