Python Coleções Básico
Dicionários
Dicionários em Python são coleções mutáveis que mapeiam chaves a valores. Diferente de listas, o acesso é feito pela chave, não por índice. Desde o Python 3.7, a ordem de inserção é preservada: ao iterar, os itens aparecem na ordem em que foram adicionados.
Para acessar valores com segurança, use d.get(chave, padrão) em vez de d[chave], que lança KeyError se a chave não existir. O método setdefault(chave, padrão) é útil para inicializar valores ausentes sem sobrescrever os existentes.
A iteração idiomática é feita com for chave, valor in d.items():. Também é possível percorrer apenas chaves (d.keys()) ou valores (d.values()).
Para combinar dicionários, o operador pipe | (Python 3.9+) cria um novo dicionário com os pares de ambos, dando prioridade ao da direita em caso de chaves repetidas. O método update() faz algo similar, mas modifica o dicionário original.
Pontos-chave
- Use
d.get(chave, padrao)para evitarKeyError. d.setdefault(chave, padrao)insere a chave com o padrão se ela não existir.- Itere com
for k, v in d.items():para acessar chave e valor juntos. - Dicionários mantêm a ordem de inserção desde o Python 3.7.
- O operador
|mescla dicionários sem alterar os originais (Python 3.9+).
estoque = {"maçã": 10, "banana": 5, "laranja": 8}
# Acesso seguro com get
print(estoque.get("uva", 0)) # 0, pois 'uva' não existe
# setdefault: insere se não existir
estoque.setdefault("uva", 0)
print(estoque["uva"]) # 0
# Iteração com items
for fruta, qtd in estoque.items():
print(f"{fruta}: {qtd}")
# Ordem de inserção preservada
print(list(estoque.keys()))
# Merge com operador pipe
precos = {"maçã": 2.5, "banana": 1.0}
outros = {"laranja": 3.0, "uva": 4.0}
todos = precos | outros
print(todos)