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.
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.
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}
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!
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
Algumas dicas que costumo seguir:
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})
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.
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.
Ao desenvolver um software, uma das tarefas mais comuns é controlar o fluxo de execução…
Manipular strings no Python é uma das tarefas mais requisitadas, e o Python oferece ferramentas…
Compreender os tipos de dados em Python é um dos primeiros passos para dominar a…
O Garbage Collector (GC) é um dos pilares essenciais para o gerenciamento de memória no…
Aprender a criar variáveis em Python é um dos passos iniciais para dominar essa linguagem…
Python está no topo das linguagens de programação mais utilizadas, e isso certamente não é…
Este blog utiliza cookies. Se você continuar assumiremos que você está satisfeito com ele.
Leia Mais...