08. Dicionários#
Percorrendo um dicionário#
Para percorrer os elementos de um dicionário vamos utilizar exclusivamente o for. Existem 3 maneiras de percorrer um dicionário utilizando o for. Para compreender as 3 maneiras, precisamos conhecer alguns métodos disponíveis em dicionários:
- O método
.keys()(usado comodicionario.keys()) devolve todas as chaves do dicionário; - O método
.values()(usado comodicionario.values()) devolve todos os valores do dicionário; - O método
.items()(usado comodicionario.items()) devolve todos os itens (pares chave-valor) do dicionário.
Exercise 1
Answer
O código acima imprime dict_keys(['couve', 'repolho', 'brocolis']) no terminal.
O código acima imprime algo similar a uma lista, mas que é do tipo dict_keys. É possível fazer a conversão para lista da sequinte forma: list(port2eng.keys()).
Exercise 2
Answer
O código acima imprime dict_values(['kale', 'cabbage', 'broccoli']) no terminal.
O código acima imprime algo similar a uma lista, que é do tipo dict_values. Neste caso, também é possível fazer a conversão para lista da seguinte forma: list(port2eng.values()).
Exercise 3
Answer
O código acima imprime dict_items([('couve', 'kale'), ('repolho', 'cabbage'), ('brocolis', 'broccoli')]) no terminal.
O código acima imprime algo similar a uma lista, que é do tipo dict_items. Neste caso, também é possível fazer a conversão para lista da seguinte forma: list(port2eng.items()).
Opção 1#
Agora que vimos como funcionam os métodos .keys(), .values() e .items(), podemos ver como podemos utilizá-los para percorrer um dicionário.
A primeira opção para percorrer um dicionário utilizando for é:
port2eng = {'couve': 'kale', 'repolho': 'cabbage', 'brocolis': 'broccoli'}
for port in port2eng:
eng = port2eng[port]
print('{0} é {1}'.format(port, eng))
Nessa opção, o bloco do for é executado para cada chave do dicionário. Se você precisar do valor associado a essa chave é necessário acessar o valor no dicionário (primeira linha dentro do for). Ela é equivalente a:
port2eng = {'couve': 'kale', 'repolho': 'cabbage', 'brocolis': 'broccoli'}
for port in port2eng.keys():
eng = port2eng[port]
print('{0} é {1}'.format(port, eng))
O .keys() é redundante nesse caso, apresentamos a versão acima por completude. Você pode sempre usar a primeira versão (sem o .keys()) sem prejuízo.
Exercise 4
Opção 2#
A segunda opção para percorrer um dicionário possui um resultado similar ao for com listas, ou seja, percorremos somente os valores:
Exercise 5
Opção 3#
Se você está interessado tanto nas chaves quando nos valores, é possível percorrer a lista da seguinte maneira:
Exercise 6
Exercise 7
Removendo um item do dicionário#
Assim como em listas, podemos remover um item utilizando o operador del:
Exercise 8
Answer
Foi impresso {'couve': 'kale', 'brocolis': 'broccoli'}.
O código del port2eng['repolho'] remove o item 'repolho': 'cabbage' do dicionário.
EXERCÍCIOS ADICIONAIS#
Exercise 9
Exercise 10
Exercise 11
Exercise 12
Exercise 13
Exercise 14
Exercise 15
Exercise 16