Dicionários Python: Estrutura e Mapas Hash

Dicionários Master Python. Aprenda a armazenar, buscar e manipular dados de pares de valores-chave. Entenda o desempenho e as práticas recomendadas para mapeamentos.

Experimente no Editor

Visão geral

Os dicionários são indiscutivelmente a estrutura de dados mais importante e otimizada em Python. Um dicionário é uma coleção mutável de valores de dados armazenados em pares `chave:valor`. Se você imaginar um dicionário do mundo real, a “chave” é a palavra que você está procurando e o “valor” é a definição. Essa estrutura de emparelhamento torna incrivelmente eficiente recuperar, atualizar e gerenciar dados relacionais.

Nos bastidores, os dicionários Python são implementados como tabelas de hash altamente otimizadas (ou mapas de hash). Isso implica que recuperar um valor por sua chave é uma operação de tempo constante `O(1)`. Quer o seu dicionário contenha dez itens ou dez milhões de itens, o Python pode pular instantaneamente diretamente para o endereço de memória do valor sem precisar examinar toda a coleção.

Para definir um dicionário, você usa chaves `{}` com chaves e valores separados por dois pontos `:`. As chaves devem ser tipos imutáveis ​​(como strings, números inteiros ou tuplas), o que significa que você não pode usar uma lista como chave de dicionário. Os valores, no entanto, podem ser absolutamente qualquer coisa, incluindo listas, objetos ou até mesmo dicionários profundamente aninhados, o que os torna perfeitos para representar estruturas de dados semelhantes a JSON.

O acesso aos valores é feito usando notação de colchetes (por exemplo, `user["name"]`). No entanto, se a chave não existir, esta abordagem lança um `KeyError`, interrompendo imediatamente a execução do programa. Para escrever um código mais seguro, os profissionais usam o método `.get()` (por exemplo, `user.get("name")`), que retorna normalmente `None` ou um valor padrão personalizado se a chave estiver faltando, evitando travamentos desnecessários.

Historicamente, os dicionários Python eram completamente desordenados. No entanto, a partir dePython 3.7, os dicionários têm garantia oficial de manter a ordem de inserção. Isso significa que quando você itera em um dicionário usando métodos como `.keys()`, `.values()` ou `.items()`, os itens serão retornados na sequência exata em que foram originalmente adicionados ao dicionário, combinando a velocidade dos mapas hash com a previsibilidade das listas.

Saída de código e execução

Criação de um perfil de configuração do usuário utilizando fortemente pares de valores-chave aninhados.

user = {
    "username": "coder123",
    "role": "admin",
    "active": True
}

user["last_login"] = "2026-04-10" # Adding a key
print(f"Username is {user['username']}")

# Iterating over key-value pairs
for key, value in user.items():
    print(f"{key}: {value}")
Saída terminal
Username is coder123
username: coder123
role: admin
active: True
last_login: 2026-04-10

Implementação passo a passo

  • Tratamento de respostas JSON de APIs REST
  • Mapeando IDs exclusivos para objetos de dados grandes
  • Armazenando parâmetros de configuração do aplicativo

Perguntas frequentes

O que acontece se eu tentar acessar uma chave que não existe?

Usar a notação de colchetes (usuário["nome"]) gera um KeyError. Use user.get("name") para retornar None sem lançar.

Tópicos Relacionados

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.