5.4 Dicionários

Vimos que list , tuple , range e str são sequências ordenadas de objetos, e sets são coleções de elementos não ordenados. Dicionário é outra estrutura de dados em Python e seus elementos, sendo estruturadas de forma não ordenada assim como os conjuntos. Ainda assim, essa não é a principal diferença com as listas. Os dicionários são estruturas poderosas e muito utilizadas, já que podemos acessar seus elementos através de chaves e não por sua posição. Em outras linguagens, este tipo é conhecido como “matrizes associativas”.

Qualquer chave de um dicionário é associada (ou mapeada) a um valor. Os valores podem ser

qualquer tipo de dado do Python. Portanto, os dicionários são pares de chave-valor não ordenados.

Os dicionários pertencem ao tipo de mapeamento integrado e não sequenciais como as listas, tuplas e strings. Vamos ver como isso funciona no código e criar um dicionário com dados de uma pessoa:

pessoa = {‘nome’: ‘João’, ‘idade’: 25, ‘cidade’: ‘São Paulo’}

pessoa

‘nome’: ‘João’, ‘idade’: 25, ‘cidade’: ‘São Paulo’

Os dicionários são delimitados por chaves ({}) e suas chaves (‘nome’, ‘idade’ e ‘cidade’) por aspas. Já os valores podem ser de qualquer tipo. No exemplo acima, temos duas strings e um int .

O que será que acontece se tentarmos acessar seu primeiro elemento?

pessoa[0]

Traceback (most recent call last):
 
File "<stdin>", line 1, in <module> KeyError: 0
 

Não é possível acessar um elemento de um dicionário por um índice como na lista. Devemos acessálos por sua chave:

pessoa[‘nome’] ‘João’

pessoa[‘idade’]

Se precisarmos adicionar algum elemento, como por exemplo, o país, basta fazermos:

pessoa1[‘país’] = ‘Brasil’

pessoa1

{‘nome’: ‘João’, ‘idade’: 25, ‘cidade’: ‘São Paulo’, ‘país’: ‘Brasil’}

Como sempre acessamos seus elementos através de chaves, o dicionário possui um método chamado

keys() que devolve o conjunto de suas chaves:

pessoa1.keys()

dict_keys([‘nome’, ‘idade’, ‘cidade’, ‘pais’])

Assim como um método chamado values() que retorna seus valores:

pessoa1.values()

dict_values([‘João’, 25, ‘São Paulo’, ‘Brasil’])

Note que as chaves de um dicionário não podem ser iguais para não causar conflito. Além disso, somente tipos de dados imutáveis podem ser usados como chaves, ou seja, nenhuma lista ou dicionário pode ser usado. Caso isso aconteça, recebemos um erro:

>>> dic = {[1, 2, 3]: 'valor'} Traceback (most recent call last):
 

File "", line 1, in TypeError: unhashable type: ‘list’

Já as tuplas, como chaves, são permitidas:

dic = {(1, 2, 3):‘valor’}‌

dic

{(1, 2, 3): ‘valor’}

Também podemos criar dicionários utilizando a função dict():

a = dict(um=1, dois=2, três=3)

a

{‘três’: 3, ‘dois’: 2, ‘um’: 1}


⬅️ Capítulo Anterior | Próximo Capítulo ➡️