6. Dicionários

6.1. Definição

  • São estruturas de dados que implementam mapeamentos
  • Um mapeamento é uma coleção de associações entre pares de valores
  • O primeiro elemento do par é chamado de chave e o outro de conteúdo
  • De certa forma, um mapeamento é uma generalização da idéia de acessar dados por índices, exceto que num mapeamento os índices (ou chaves) podem ser de qualquer tipo imutável
  • Relembrando o que é uma lista
# Isso é uma lista
estudantes_lst = ["Mateus", 24, "Fernanda", 22, "Tamires", 26, "Cristiano", 25]   
estudantes_lst
['Mateus', 24, 'Fernanda', 22, 'Tamires', 26, 'Cristiano', 25]

6.2. Construindo um Dicionário

# Isso é um dicionário
estudantes_dict = {"Mateus":24, "Fernanda":22, "Tamires":26, "Cristiano":25}
estudantes_dict 
{'Mateus': 24, 'Fernanda': 22, 'Tamires': 26, 'Cristiano': 25}
estudantes_dict["Mateus"]
24
estudantes_dict["Pedro"] = 23
estudantes_dict["Pedro"]
23
estudantes_dict
{'Mateus': 24, 'Fernanda': 22, 'Tamires': 26, 'Cristiano': 25, 'Pedro': 23}
estudantes_dict["Tamires"]
26
estudantes_dict.clear()
estudantes_dict
{}
del estudantes_dict
estudantes_dict
---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-13-29b87ec1321c> in <module>
----> 1 estudantes_dict


NameError: name 'estudantes_dict' is not defined
estudantes = {"Mateus":24, "Fernanda":22, "Tamires":26, "Cristiano":25}
estudantes
{'Mateus': 24, 'Fernanda': 22, 'Tamires': 26, 'Cristiano': 25}
len(estudantes)
4
estudantes.keys()
dict_keys(['Mateus', 'Fernanda', 'Tamires', 'Cristiano'])
estudantes.values()
dict_values([24, 22, 26, 25])
estudantes.items()
dict_items([('Mateus', 24), ('Fernanda', 22), ('Tamires', 26), ('Cristiano', 25)])
estudantes2 = {"Maria":27, "Erika":28, "Milton":26}
estudantes2
{'Maria': 27, 'Erika': 28, 'Milton': 26}
estudantes.update(estudantes2)
estudantes
{'Mateus': 24,
 'Fernanda': 22,
 'Tamires': 26,
 'Cristiano': 25,
 'Maria': 27,
 'Erika': 28,
 'Milton': 26}
dic1 = {}
dic1
{}
dic1["key_one"] = 2
print(dic1)
{'key_one': 2}
dic1[10] = 5
dic1
{'key_one': 2, 10: 5}
dic1[8.2] = "Python"
dic1
{'key_one': 2, 10: 5, 8.2: 'Python'}
dic1["teste"] = 5
dic1
{'key_one': 2, 10: 5, 8.2: 'Python', 'teste': 5}
dict1 = {}
dict1
{}
dict1["teste"] = 10
dict1["key"] = "teste"
# Atenção, pois chave e valor podem ser iguais, mas representam coisas diferentes.
dict1
{'teste': 10, 'key': 'teste'}
dict2 = {}
dict2["key1"] = "Big Data"
dict2["key2"] = 10
dict2["key3"] = 5.6
dict2
{'key1': 'Big Data', 'key2': 10, 'key3': 5.6}
a = dict2["key1"]
b = dict2["key2"]
c = dict2["key3"]
a, b, c
('Big Data', 10, 5.6)
# Dicionário de listas
dict3 = {'key1':1230,'key2':[22,453,73.4],'key3':['leite','maça','batata']}
dict3
{'key1': 1230, 'key2': [22, 453, 73.4], 'key3': ['leite', 'maça', 'batata']}
dict3['key2']
[22, 453, 73.4]
# Acessando um item da lista, dentro do dicionário
dict3['key3'][0].upper()
'LEITE'
# Operações com itens da lista, dentro do dicionário
var1 = dict3['key2'][0] - 2
var1
20
# Duas operações no mesmo comando, para atualizar um item dentro da lista
dict3['key2'][0] -= 2
dict3
{'key1': 1230, 'key2': [20, 453, 73.4], 'key3': ['leite', 'maça', 'batata']}

6.2.1. Criando dicionários aninhados

# Criando dicionários aninhados
dict_aninhado = {'key1':{'key2_aninhada':{'key3_aninhada':'Dict aninhado em Python'}}}
dict_aninhado
{'key1': {'key2_aninhada': {'key3_aninhada': 'Dict aninhado em Python'}}}
dict_aninhado['key1']['key2_aninhada']['key3_aninhada']
'Dict aninhado em Python'