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.
A inteligência artificial está revolucionando todos os setores da sociedade, desde aplicações empresariais até soluções…
Nesta aula do minicurso de Python, quero abordar dois tipos de coleção que são usadas…
Nesta nona aula do mini curso, quero falar sobre um dos tipos de dados mais…
Entender o escopo de variáveis em Python é essencial para evitar erros e criar programas…
As funções são um dos conceitos mais importantes em qualquer linguagem de programação, e no…
Os loops no Python são um dos conceitos mais fundamentais em qualquer linguagem de programação.…
Este blog utiliza cookies. Se você continuar assumiremos que você está satisfeito com ele.
Leia Mais...