Python

Dicionários em Python: Tudo o que você precisa saber – Aula 10

Entre as estruturas de dados mais versáteis do Python, os dicionários se destacam. Eles nos ajudam a representar dados estruturados com chaves e valores, como informações de usuários, configurações de sistemas e respostas de APIs. Nesta décima aula do nosso curso de Python, vou mostrar como os dicionários funcionam, como manipulá-los e por que você deve dominá-los.

O que é um dicionário em Python?

Dicionários em Python são coleções de pares chave:valor. Eles são mutáveis, dinâmicos e não permitem chaves duplicadas. A sintaxe é simples:

dados = {"nome": "Ana", "idade": 30, "cidade": "São Paulo"}
print(dados)
# Saída: {'nome': 'Ana', 'idade': 30, 'cidade': 'São Paulo'}

Também é possível usar outros tipos como chave, desde que sejam hashable, como tuplas:

coordenadas = {(1, 2): "Ponto A", (3, 4): "Ponto B"}
print(coordenadas)
# Saída: {(1, 2): 'Ponto A', (3, 4): 'Ponto B'}

Isso é ótimo quando preciso indexar valores com coordenadas ou pares complexos.

Acessando valores e manipulando dicionários em Python

Para acessar um valor, basta usar a chave entre colchetes:

print(dados["nome"])
# Saída: Ana

Se eu tentar acessar uma chave que não existe, recebo um erro. Para evitar isso, uso o método get():

print(dados.get("email"))
# Saída: None

Esse comportamento é muito útil quando estou lidando com entradas de usuários ou dados vindos de fontes externas, onde nem sempre tenho garantia da estrutura.

Posso adicionar ou modificar pares com simplicidade:

dados["email"] = "ana@email.com"
dados["idade"] = 31
print(dados)
# Saída: {'nome': 'Ana', 'idade': 31, 'cidade': 'São Paulo', 'email': 'ana@email.com'}

Para remover um par, o pop() é bastante direto:

dados.pop("cidade")
print(dados)
# Saída: {'nome': 'Ana', 'idade': 31, 'email': 'ana@email.com'}

Se quiser limpar o dicionário inteiro:

dados.clear()
print(dados)
# Saída: {}

E para copiar um dicionário sem afetar o original:

dados = {"nome": "Ana", "idade": 30}
copia = dados.copy()
print(copia)
# Saída: {'nome': 'Ana', 'idade': 30}

Iterando sobre dicionários em Python

Para percorrer um dicionário, geralmente uso o for com o método items():

for chave, valor in dados.items():
    print(f"{chave}: {valor}")
# Saída:
# nome: Ana
# idade: 30

Se quero apenas as chaves ou os valores, posso usar keys() ou values():

for chave in dados.keys():
    print(chave)
# Saída:
# nome
# idade
for valor in dados.values():
    print(valor)
# Saída:
# Ana
# 30

E também posso verificar se uma chave existe:

if "email" in dados:
    print("Chave encontrada!")
else:
    print("Chave ausente!")
# Saída: Chave ausente!

Dicionários aninhados: um recurso poderoso

Dá para criar dicionários dentro de dicionários. Isso é muito comum quando lido com dados estruturados de APIs, por exemplo:

usuario = {
    "nome": "Carlos",
    "email": "carlos@email.com",
    "endereço": {
        "cidade": "Belo Horizonte",
        "uf": "MG"
    },
    "permissoes": ["admin", "editor"]
}

print(usuario["endereço"]["cidade"])
# Saída: Belo Horizonte

E posso navegar por estruturas mais complexas misturando listas e dicionários:

sistema = {
    "usuarios": [
        {"nome": "Ana", "ativo": True},
        {"nome": "João", "ativo": False}
    ]
}

for u in sistema["usuarios"]:
    if u["ativo"]:
        print(u["nome"])
# Saída:
# Ana

Boas práticas com dicionários em Python

Algumas dicas que costumo seguir:

  • Sempre valido se a chave existe antes de acessar diretamente.
  • Uso defaultdict do módulo collections quando preciso de valores padrão.
  • Aproveito dict comprehensions para construir dicionários de forma elegante.
  • Quando preciso manter a ordem de inserção, confio no comportamento padrão do Python 3.7+, que já garante isso.

Exemplo de dict comprehension:

quadrados = {x: x**2 for x in range(5)}
print(quadrados)
# Saída: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

E com defaultdict:

from collections import defaultdict

contagem = defaultdict(int)
palavras = ["python", "codigo", "python", "dicionario"]

for palavra in palavras:
    contagem[palavra] += 1

print(contagem)
# Saída: defaultdict(<class 'int'>, {'python': 2, 'codigo': 1, 'dicionario': 1})

Casos de uso reais com dicionários em Python

Imagine que você está construindo uma lista de compras. Um dicionário pode te ajudar a armazenar os itens e suas quantidades:

compras = {
    "maçã": 4,
    "banana": 6,
    "pão": 1
}

for item, quantidade in compras.items():
    print(f"{item}: {quantidade}")
# Saída:
# maçã: 4
# banana: 6
# pão: 1

Se eu quiser adicionar ou atualizar a quantidade de um item:

compras["banana"] = 10
compras["leite"] = 2
print(compras)
# Saída: {'maçã': 4, 'banana': 10, 'pão': 1, 'leite': 2}

Esse é um exemplo simples, mas mostra bem como os dicionários em Python podem ser aplicados a tarefas do dia a dia de forma prática.

Conclusão

Dominar os dicionários em Python é essencial para qualquer pessoa que queira escrever código limpo, expressivo e eficiente. Eles aparecem em praticamente todo projeto que desenvolvo, seja no backend, seja em scripts para automação. Entender bem como funcionam te permite lidar melhor com JSONs, configurações e armazenamento de dados dinâmicos. Quanto mais uso Python, mais percebo que os dicionários são a base de uma programação idiomática e robusta.

Se quiser se aprofundar mais, recomendo a documentação oficial sobre dicionários.

Vinicius Sodré

Formado em Ciência da Computação pela Unicarioca, desenvolvedor de software com 15 anos de experiência em grandes empresas nacionais e multinacionais. Vinicius está à frente deste blog, feito de desenvolvedor para desenvolvedores de iniciantes a experientes.

Compartilhar
Publicado por:
Vinicius Sodré

Posts Recentes

Desenvolvimento de APIs Python: Frameworks e Melhores Práticas

O Desenvolvimento de APIs Python tornou-se uma habilidade fundamental para programadores modernos. Com sua sintaxe clara e…

7 meses atrás

Segurança em Aplicações Python

A segurança em aplicações Python é uma grande preocupação para desenvolvedores. Com o aumento de…

8 meses atrás

Python para Análise de Dados em Tempo Real: Guia Completo

A análise de dados em tempo real tornou-se um componente crítico para empresas que precisam…

9 meses atrás

Frameworks Python para Web: Guia Completo

O desenvolvimento web evoluiu significativamente nos últimos anos, e os frameworks Python estão na vanguarda…

9 meses atrás

Python para IA: Domine o Caminho para a Inteligência Artificial

A inteligência artificial está revolucionando todos os setores da sociedade, desde aplicações empresariais até soluções…

9 meses atrás

Tuples e Sets em Python: quando usar cada um – Aula 11

Nesta aula do minicurso de Python, quero abordar dois tipos de coleção que são usadas…

10 meses atrás

Este blog utiliza cookies. Se você continuar assumiremos que você está satisfeito com ele.

Leia Mais...