adgsd

876 palavras 4 páginas
Python:
Dicionários

Claudio Esperança

Dicionários
 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

Chaves vs. Índices
 Considere que queiramos representar um caderno de

telefones


Uma solução é ter uma lista de nomes e outra de telefones



Telefone de nome[i] armazenado em telefone[i]
Acrescentar “Joao” com telefone “20122232”: nome+= 

“Joao” telefone+=“20122232”

Para encontrar o telefone de “Joao”:
Tel = telefone[nome.index[“Joao”]]



Dicionários tornam isso mais fácil e eficiente telefone[“Joao”] = “20122232”
Tel = telefone[“Joao”]

Criando dicionários
 Uma constante do tipo dicionário é escrita
{ chave1:conteúdo1, ... chaveN:conteúdoN}
 Uma variável do tipo dicionário pode ser “indexada” da

maneira habitual, isto é, usando colchetes
 O conteúdo associado a uma chave pode ser alterado atribuindo­se àquela posição do dicionário
 Novos valores podem ser acrescentados a um dicionário fazendo atribuição a uma chave ainda não definida
 Não há ordem definida entre os pares chave/conteúdo de um dicionário

Exemplo
>>> dic = {"joao":100,"maria":150}
>>> dic["joao"]
100
>>> dic["maria"]
150
>>> dic["pedro"] = 10
>>> dic
{'pedro': 10, 'joao': 100, 'maria': 150}
>>> dic = {'joao': 100, 'maria': 150, 'pedro':
10}
>>> dic
{'pedro': 10, 'joao': 100, 'maria': 150}

Dicionários não têm ordem
 As chaves dos dicionários não são armazenadas em

qualquer ordem específica



Na verdade, dicionários são implementados por tabelas de espalhamento (Hash Tables)
A falta de ordem é proposital

 Diferentemente de listas, atribuir a um elemento de

Relacionados