Lição 7: Use Dicionários!
Python
Olá pessoa!
Mais um post na série para aprendizagem em Python, desta vez, vamos utilizar os dicionários!
Este post faz parte de uma série! Para visualizar a série inteira clique aqui.
Já estamos trabalhando com listas e laços de repetição desde a lição 4, já está na hora de criarmos mais estruturas, desta vez, vamos usar os dicionários!
Os dicionários permitem ao desenvolvedor armazenar pares de chave-valor facilmente! Na prática isso significa que conseguimos criar uma estrutura para armazenar mais de uma informação correlacionada.
Imagine que você deseja armazenar dados sobre uma pessoa. Você precisará guardar o nome, sobrenome, idade e quantas outras informações forem necessárias. É possível criar todas estas variáveis separadas? Mas é claro que sim!
O problema desta abordagem é que o seu programa não conseguiria relacionar as informações. Para o seu programa é como se aquelas variáveis fossem dados separados entre si, ou seja, sem nenhuma relação.
Se você já viu alguma vez um objeto em JSON
, você verá que existem muitas semelhanças entre estas duas coisas, veja como um dicionário em Python se parece:
pessoa = {
"nome": "Gabriel",
"sobrenome": "Schade",
"idade": 27
}
Como dito anteriormente, um dicionário organiza as informações em pares no formato chave-valor. No exemplo acima, as chaves são: nome, sobrenome e idade e os valores respectivos são: Gabriel, Schade e 27.
No nosso caso todas as chaves são valores do tipo string
, mas não há uma obrigatoriedade nisso (apesar de ser bastante comum) enquanto que os valores comumente variam de tipos.
Assim como nas listas, podemos alterar e obter os valores de um dicionário, mas neste caso ao invés de utilizarmos um índice, utilizamos a chave. Isso faz com que os dicionários sejam extremamente simples de se trabalhar, veja o código a seguir:
pessoa["sobrenome"] = "Schade Cardoso"
Este código é bem parecido com alterar o valor de um item na lista e faz a mesma coisa, mas desta vez alterando um valor de um dicionário!
Podemos fazer o mesmo processo para obter um valor do dicionário e armazená-lo em outra variável, veja:
nome_da_pessoa = pessoa["nome"]
Com isso conseguimos manipular as informações relacionadas em um mesmo dicionário. Podemos por exemplo, exibir no console o nome completo da pessoa:
print( pessoa["nome"], pessoa["sobrenome"] )
Ao usar dicionários você precisa tomar cuidado, porque se a chave não existir a aplicação irá lançar um erro! Faça o teste:
cpf = pessoa["cpf"]
Sabendo disso, existe uma outra forma no Python para obtermos um valor de um dicionário. Podemos fazer isso através da função get
. Para esta função precisamos enviar duas informações: a chave e um valor padrão para o caso da chave não existir.
cpf = pessoa.get("cpf", None)
print (cpf) # -> None
Através do get
buscamos um valor em um dicionário de forma segura, fazendo com que a aplicação não gere erros.
Além da função get
, também estão disponíveis as funções keys
e values
, elas retornam respectivamente uma lista contendo todas as chaves ou todos os valores do dicionário.
Vamos começar utilizando a função keys
!
chaves = pessoa.keys()
for chave in chaves:
print (chave)
O mesmo vale para obtermos todos os valores:
valores = pessoa.values()
for valor in valores:
print (valor)
Podemos utilizar estas funções para escrever cada chave e seu respectivo valor, por exemplo:
chaves = pessoa.keys()
for chave in chaves:
valor = pessoa[chave]
texto = chave + ": " + str(valor)
print ( texto )
O código acima foi separado para ficar claro o passo-a-passo das instruções, mas você pode incluir todas estas instruções em apenas uma linha de código se achar mais confortável:
chaves = pessoa.keys()
for chave in chaves:
print ( chave, ":", str( pessoa[chave]) )
Por fim, assim como fizemos com as listas, também podemos apagar um elemento do dicionário com o comando del
. É importante dizer que o del
remove completamente o item chave-valor do dicionário.
del pessoa["sobrenome"]
print (pessoa["sobrenome"])
O código acima irá gerar um erro, porque a partir do momento que o comando del
foi aplicado à chave-valor “sobrenome”, ela deixa de existir no dicionário, portanto, tome cuidado!
Vamos Praticar!
-
Faça um programa que crie um dicionário para definir um produto, contendo sua descrição e seu preço.
-
Faça um programa que inicialize uma lista de compras com 5 itens diferentes, onde cada item é um dicionário contendo a descrição e preço do produto. Depois disso, percorra a lista e exiba as informações de cada item.
-
Utilize a lista de compras do programa anterior para identificar qual o produto mais barato e qual o produto mais caro da lista de compras.
-
Faça um programa que tenha uma lista com 5 de pessoas, onde cada pessoa tem seu nome e sobrenome armazenado em um dicionário, depois disso, exiba todos os nomes e sobrenomes. Para complicar um pouco as coisas, vamos simular que estes dados foram obtidos da web e com isso recebemos algumas inconsistências. Duas das cinco pessoas possuem o dicionário onde as chaves estão em maiúsculo e os outros três em minúsculo.
Atenção
É fortemente recomendado que você tente fazer os exercícios antes de ver as respostas. Você pode encontrar as respostas aqui, elas estão bem no fim no arquivo.
O que achou do post? - Pratique mais até o próximo post da série!
Me conte nos comentários!
E Até mais!
Sempre vale lembrar que as informações e textos aqui no blog representam minha opinião pessoal, o que pode não ser igual à sua ou de qualquer outra pessoa, incluindo a empresa para qual eu trabalho. Portanto as publicações inseridas aqui estão relacionadas somente a mim.