Dicionarios - python
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
atribuindose à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 um