Dicionários em Python: Conceitos, Métodos e Exemplos

Tempo de leitura: 15 minutos
foto de um dicionário

Os dicionários são uma das estruturas de dados mais poderosas e versáteis do Python. Eles permitem armazenar informações de forma organizada usando pares de chave e valor, facilitando o acesso rápido aos dados. Se você está começando a programar ou quer entender melhor como trabalhar com essa estrutura, este guia vai te ajudar.

Neste artigo, você vai aprender o que são dicionários, como criar e manipular essas estruturas, conhecer os principais métodos disponíveis e ver exemplos práticos de uso. Vamos explorar desde conceitos básicos até aplicações do mundo real.

Para complementar seu aprendizado, confira este vídeo explicativo sobre dicionários em Python do canal Curso em Vídeo:

YouTube player

O Que São Dicionários em Python

Um dicionário é uma coleção não ordenada de itens que armazena dados em pares de chave-valor. Diferente das listas em Python, onde você acessa elementos por índices numéricos, nos dicionários você usa chaves únicas para recuperar valores.

Pense em um dicionário real de português. Você procura uma palavra (chave) e encontra seu significado (valor). O mesmo acontece com dicionários em Python: cada chave está associada a um valor específico.

Os dicionários são extremamente eficientes para buscar dados. Quando você precisa acessar uma informação usando uma chave, o Python encontra o valor quase instantaneamente, mesmo em dicionários com milhares de itens.

Essa estrutura é mutável, o que significa que você pode adicionar, remover ou modificar itens depois de criar o dicionário. Isso torna os dicionários muito flexíveis para diferentes situações de programação.

Como Criar um Dicionário

Existem várias formas de criar dicionários em Python. A maneira mais comum é usar chaves {} e separar cada par chave-valor com dois pontos.

Python
aluno = {
    "nome": "Maria",
    "idade": 22,
    "curso": "Engenharia"
}

Você também pode criar um dicionário vazio e adicionar itens depois. Isso é útil quando você não sabe quais dados terá no início do programa.

Python
produto = {}
produto["nome"] = "Notebook"
produto["preco"] = 2500.00
produto["estoque"] = 15

Outra opção é usar a função dict() para criar dicionários. Esta forma é menos comum, mas pode ser útil em algumas situações específicas.

Python
carro = dict(marca="Toyota", modelo="Corolla", ano=2023)

As chaves de um dicionário precisam ser de tipos imutáveis, como strings, números inteiros ou tuplas. Já os valores podem ser de qualquer tipo: números, textos, listas ou até outros dicionários.

Acessando Valores no Dicionário

Para recuperar um valor armazenado no dicionário, você usa a chave correspondente entre colchetes. É como procurar uma palavra específica no dicionário de português.

Python
pessoa = {
    "nome": "João",
    "idade": 30,
    "cidade": "São Paulo"
}

print(pessoa["nome"])  # Exibe: João
print(pessoa["idade"])  # Exibe: 30

Se você tentar acessar uma chave que não existe, o Python retorna um erro. Para evitar isso, use o método get(), que retorna None quando a chave não é encontrada.

Python
email = pessoa.get("email")
print(email)  # Exibe: None

# Você pode definir um valor padrão
telefone = pessoa.get("telefone", "Não informado")
print(telefone)  # Exibe: Não informado

Quando você trabalha com dados vindos de APIs ou arquivos externos, o método get() é especialmente útil para evitar erros no programa. Ele torna seu código mais robusto e confiável.

Modificando e Adicionando Itens

Modificar valores em um dicionário é muito simples. Basta acessar a chave e atribuir um novo valor, como você faria com uma variável comum.

Python
estoque = {
    "maçã": 50,
    "banana": 30,
    "laranja": 40
}

# Modificando a quantidade de maçãs
estoque["maçã"] = 60
print(estoque["maçã"])  # Exibe: 60

Para adicionar um novo item, você simplesmente atribui um valor a uma chave que ainda não existe no dicionário. O Python automaticamente cria essa nova entrada.

Python
estoque["uva"] = 25
print(estoque)
# Exibe: {'maçã': 60, 'banana': 30, 'laranja': 40, 'uva': 25}

Você pode usar o método update() para adicionar múltiplos itens de uma vez ou atualizar valores existentes. Este método aceita outro dicionário como argumento.

Python
estoque.update({"manga": 35, "banana": 45})
print(estoque)
# Banana foi atualizada e manga foi adicionada

Removendo Itens do Dicionário

Existem diferentes formas de remover itens de um dicionário, cada uma adequada para situações específicas. Conhecer essas opções te dá mais controle sobre seus dados.

O método pop() remove um item pela chave e retorna o valor removido. Se a chave não existir, você pode especificar um valor padrão para evitar erros.

Python
notas = {
    "matemática": 8.5,
    "português": 7.0,
    "história": 9.0
}

nota_removida = notas.pop("português")
print(nota_removida)  # Exibe: 7.0
print(notas)  # português não está mais no dicionário

O comando del remove um item específico ou pode até deletar o dicionário inteiro. É uma forma direta de eliminar dados que você não precisa mais.

Python
del notas["história"]
print(notas)  # história foi removida

Para limpar todos os itens do dicionário mantendo a estrutura vazia, use o método clear(). Isso é útil quando você quer reutilizar o mesmo dicionário com novos dados.

Python
notas.clear()
print(notas)  # Exibe: {}

Principais Métodos dos Dicionários

Os dicionários possuem diversos métodos que facilitam a manipulação de dados. Conhecer esses métodos torna seu código mais eficiente e elegante.

O método keys() retorna todas as chaves do dicionário. Isso é útil quando você quer listar ou verificar quais informações estão armazenadas.

Python
livro = {
    "titulo": "Python para Todos",
    "autor": "Carlos Silva",
    "paginas": 350
}

chaves = livro.keys()
print(chaves)  # Exibe: dict_keys(['titulo', 'autor', 'paginas'])

Para obter todos os valores, use o método values(). Ele retorna uma visualização de todos os valores armazenados no dicionário.

Python
valores = livro.values()
print(valores)  # Exibe: dict_values(['Python para Todos', 'Carlos Silva', 350])

O método items() retorna pares de chave-valor como tuplas. Isso é especialmente útil quando você precisa percorrer o dicionário completo usando estruturas de repetição.

Python
for chave, valor in livro.items():
    print(f"{chave}: {valor}")
    
# Exibe:
# titulo: Python para Todos
# autor: Carlos Silva
# paginas: 350

Iterando Sobre Dicionários

Percorrer todos os elementos de um dicionário é uma operação comum em programação. O Python oferece formas simples e eficientes de fazer isso usando o loop for.

Quando você itera diretamente sobre um dicionário, o Python percorre suas chaves. Você pode então usar essas chaves para acessar os valores correspondentes.

Python
precos = {
    "arroz": 5.50,
    "feijão": 8.00,
    "macarrão": 4.25
}

for produto in precos:
    print(f"{produto}: R$ {precos[produto]}")

Uma forma mais elegante é usar o método items(), que já fornece chave e valor em cada iteração. Isso torna o código mais limpo e fácil de entender.

for produto, preco in precos.items():
    print(f"{produto}: R$ {preco}")

Você também pode usar compreensão de dicionário para criar novos dicionários baseados em condições. Essa técnica é poderosa para filtrar ou transformar dados.

Python
# Criar dicionário apenas com produtos baratos
baratos = {produto: preco for produto, preco in precos.items() if preco < 6.00}
print(baratos)  # Exibe: {'arroz': 5.5, 'macarrão': 4.25}

Verificando Existência de Chaves

Antes de acessar ou modificar um valor no dicionário, às vezes você precisa verificar se uma chave existe. Isso evita erros no seu programa.

O operador in verifica se uma chave está presente no dicionário. Ele retorna True ou False, permitindo que você tome decisões no código.

Python
usuario = {
    "nome": "Ana",
    "email": "[email protected]"
}

if "telefone" in usuario:
    print(usuario["telefone"])
else:
    print("Telefone não cadastrado")

Você pode combinar essa verificação com estruturas condicionais para criar lógicas mais complexas. Por exemplo, adicionar um valor apenas se a chave não existir.

Python
if "telefone" not in usuario:
    usuario["telefone"] = "(11) 98765-4321"
    
print(usuario)

Dicionários Aninhados

Dicionários podem conter outros dicionários como valores, criando estruturas de dados mais complexas. Isso é muito útil para representar informações hierárquicas ou relacionadas.

Imagine que você precisa armazenar dados de vários alunos com suas respectivas notas. Um dicionário aninhado organiza essas informações de forma clara e acessível.

Python
turma = {
    "aluno1": {
        "nome": "Pedro",
        "notas": [8.5, 9.0, 7.5]
    },
    "aluno2": {
        "nome": "Carla",
        "notas": [9.5, 8.0, 9.0]
    }
}

# Acessando informações específicas
print(turma["aluno1"]["nome"])  # Exibe: Pedro
print(turma["aluno2"]["notas"][0])  # Exibe: 9.5

Para trabalhar com dicionários aninhados, você precisa acessar cada nível usando as chaves correspondentes. Pense nisso como abrir gavetas dentro de gavetas para encontrar o que procura.

Você pode iterar sobre dicionários aninhados usando loops dentro de loops. Isso permite processar todos os dados de forma organizada.

Python
for aluno_id, dados in turma.items():
    print(f"Nome: {dados['nome']}")
    print(f"Média: {sum(dados['notas']) / len(dados['notas'])}")
    print("---")

Copiando Dicionários

Copiar dicionários requer atenção especial em Python. Se você simplesmente atribui um dicionário a outra variável, ambas referenciam o mesmo objeto na memória.

Python
original = {"a": 1, "b": 2}
copia_errada = original

copia_errada["c"] = 3
print(original)  # Exibe: {'a': 1, 'b': 2, 'c': 3}
# A modificação afetou o original!

Para criar uma cópia independente, use o método copy(). Isso cria um novo dicionário com os mesmos pares chave-valor do original.

Python
original = {"a": 1, "b": 2}
copia_correta = original.copy()

copia_correta["c"] = 3
print(original)  # Exibe: {'a': 1, 'b': 2}
print(copia_correta)  # Exibe: {'a': 1, 'b': 2, 'c': 3}

Para dicionários aninhados, o método copy() cria apenas uma cópia superficial. Se você precisa copiar também os dicionários internos, use a biblioteca copy com o método deepcopy().

Diferença Entre Dicionários e Outras Estruturas

Entender quando usar dicionários em vez de outras estruturas de dados é fundamental. Cada estrutura tem características específicas que a tornam mais adequada para determinadas situações.

Ao contrário das listas, os dicionários usam chaves nomeadas em vez de índices numéricos. Isso torna o acesso aos dados mais intuitivo e semântico, especialmente quando você trabalha com informações que têm nomes específicos.

As tuplas são imutáveis, enquanto os dicionários permitem modificações. Os conjuntos não permitem duplicatas e não têm pares chave-valor. Compreender essas diferenças entre estruturas ajuda você a escolher a ferramenta certa.

EstruturaOrdenadaMutávelPermite Duplicatas
ListaSimSimSim
TuplaSimNãoSim
DicionárioSim (Python 3.7+)SimChaves não, valores sim
ConjuntoNãoSimNão

Aplicações Práticas dos Dicionários

Os dicionários têm inúmeras aplicações no mundo real da programação. Eles são especialmente úteis quando você precisa organizar dados relacionados de forma eficiente.

Uma aplicação comum é armazenar configurações de aplicativos. Em vez de usar múltiplas variáveis separadas, você agrupa todas as configurações em um único dicionário organizado.

Python
config = {
    "idioma": "pt-BR",
    "tema": "escuro",
    "notificacoes": True,
    "volume": 80
}

Dicionários são perfeitos para trabalhar com dados JSON, formato muito usado em APIs web. Quando você faz requisições HTTP usando a biblioteca requests, frequentemente recebe dicionários como resposta.

Você pode usar dicionários para contar frequências de elementos, como palavras em um texto ou produtos vendidos. Isso é muito útil em análise de dados.

Python
texto = "python é incrível python é poderoso"
palavras = texto.split()

contagem = {}
for palavra in palavras:
    if palavra in contagem:
        contagem[palavra] += 1
    else:
        contagem[palavra] = 1
        
print(contagem)
# Exibe: {'python': 2, 'é': 2, 'incrível': 1, 'poderoso': 1}

Dicas e Boas Práticas

Use nomes de chaves descritivos e consistentes. Isso torna seu código mais legível e fácil de manter. Prefira nomes como “nome_completo” em vez de apenas “n”.

Evite modificar um dicionário enquanto itera sobre ele. Isso pode causar erros inesperados. Se precisar fazer alterações, crie uma lista das chaves primeiro e depois modifique o dicionário.

Quando trabalhar com dicionários grandes, considere usar o método get() com valores padrão em vez de verificações if/else repetitivas. Isso deixa o código mais limpo.

Lembre-se que dicionários em Python 3.7+ mantêm a ordem de inserção dos itens. Nas versões anteriores, a ordem não era garantida. Esse comportamento pode ser importante dependendo do seu projeto.

Para trabalhar eficientemente com dados, combine dicionários com outras técnicas de Python. Por exemplo, use funções para processar dicionários ou aplique conceitos de programação orientada a objetos para criar estruturas mais complexas.

Conclusão

Os dicionários são ferramentas essenciais em Python que todo programador deve dominar. Eles oferecem uma forma elegante e eficiente de organizar dados usando pares de chave-valor, tornando seu código mais legível e performático.

Neste guia, você aprendeu desde os conceitos básicos até aplicações práticas dos dicionários. Vimos como criar, modificar, acessar e remover itens, além de conhecer os principais métodos disponíveis. Também exploramos dicionários aninhados e boas práticas de uso.

Com esse conhecimento, você está preparado para usar dicionários em seus projetos. Continue praticando com exercícios práticos e explore recursos mais avançados conforme ganha experiência. Os dicionários serão companheiros constantes na sua jornada de programação em Python.

Perguntas Frequentes (FAQ)

1. Posso usar listas como chaves de dicionário?
Não, as chaves precisam ser imutáveis. Use tuplas no lugar de listas quando precisar de uma sequência como chave.

2. Os dicionários são ordenados em Python?
Sim, a partir do Python 3.7, os dicionários mantêm a ordem de inserção dos itens.

3. Como verifico se um dicionário está vazio?
Use uma condição simples: if not meu_dict: retorna True se o dicionário estiver vazio.

4. Qual a diferença entre pop() e del?
O pop() remove e retorna o valor, permitindo valor padrão. O del apenas remove o item.

5. Posso ter valores duplicados em um dicionário?
Sim, valores podem se repetir. Apenas as chaves precisam ser únicas no dicionário.

6. Como mesclar dois dicionários?
Use o método update() ou, no Python 3.9+, o operador | para unir dicionários.

7. Dicionários são mais rápidos que listas?
Para buscas, sim. Dicionários têm acesso quase instantâneo por chave, enquanto listas precisam percorrer elementos.

8. Como ordeno um dicionário por valores?
Use a função sorted() com uma função lambda: sorted(dict.items(), key=lambda x: x[1]).

9. Posso ter um dicionário dentro de outro?
Sim, você pode criar dicionários aninhados com múltiplos níveis de profundidade.

10. O que acontece se eu acessar uma chave inexistente?
Python gera um erro KeyError. Use get() para evitar esse problema.

11. Como removo todos os itens de uma vez?
Use o método clear() para esvaziar o dicionário mantendo sua referência.

12. Dicionários ocupam muita memória?
Eles usam mais memória que listas, mas a diferença é pequena e vale pela eficiência em buscas.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Ilustração minimalista do logotipo da linguagem de programação Python ao lado do texto REGEX em fundo neutro
    Fundamentos
    Foto do Leandro Hirt

    Regex Python: Tudo Sobre Expressões Regulares

    Se você já tentou encontrar padrões específicos em textos, validar formatos de email ou extrair informações de documentos, provavelmente já

    Ler mais

    Tempo de leitura: 12 minutos
    05/01/2026
    Logo do Python, texto TXT e ícone de bloco de notas representando arquivos de texto
    Fundamentos
    Foto do Leandro Hirt

    Como Ler Arquivos TXT no Python

    Trabalhar com arquivos de texto é uma das tarefas mais comuns na programação. Aprender como ler arquivo TXT no Python

    Ler mais

    Tempo de leitura: 14 minutos
    24/12/2025
    Comparação visual entre Python 2 e Python 3 com ícones minimalistas
    Fundamentos
    Foto do Leandro Hirt

    Python 2 vs Python 3: Principais Diferenças

    Se você está começando a estudar Python ou já trabalha com a linguagem, provavelmente já se deparou com uma dúvida

    Ler mais

    Tempo de leitura: 20 minutos
    22/12/2025
    Pessoa pensando com um monitor desfocado ao fundo
    Fundamentos
    Foto do Leandro Hirt

    Tipos de Dados em Python: int, float, str, list e dict

    Aprenda tudo sobre os principais tipos de dados em Python: int, float, str, list e dict. Guia completo com exemplos

    Ler mais

    Tempo de leitura: 14 minutos
    21/12/2025
    Pessoa usando tablet com caneta digital para planejar tarefas em checklist, representando organização, planejamento e produtividade digital.
    Fundamentos
    Foto do Leandro Hirt

    Como Ordenar Listas no Python (Sort vs Sorted)

    Você já ficou confuso sobre quando usar sort() ou sorted() para organizar suas listas em Python? Não está sozinho. Esses

    Ler mais

    Tempo de leitura: 12 minutos
    20/12/2025
    Logo do Python com uma faca, simbolizando fatiamento
    Fundamentos
    Foto do Leandro Hirt

    Fatiamento em Python: Tudo Sobre Slicing

    O fatiamento (ou slicing) é uma técnica fundamental em Python que permite extrair partes específicas de sequências como listas, strings

    Ler mais

    Tempo de leitura: 11 minutos
    13/12/2025