// aula 03 · Python · Estruturas de Dados · Mundo 3

Dicionários em Python


O que é um dicionário?

📖 Pares de chave → valor

O Guanabara usa a analogia do dicionário real: você procura uma palavra (chave) e encontra sua definição (valor). Em vez de acessar por número como nas listas, você acessa por um nome que faz sentido — como "nome", "idade", "email".

✅ Características

  • Pares chave: valor
  • Chaves são únicas (sem repetição)
  • Mutável — pode ser alterado
  • Chaves devem ser imutáveis (str, int, tupla)

📌 Sintaxe

  • Criado com chaves: { }
  • Separador: chave: valor
  • Acesso: dict["chave"]
  • Acesso seguro: dict.get("chave")

Visualizando um dicionário

🔑 Chave 📦 Valor
"nome"
"Lucilia"
"idade"
21
"cidade"
"São Paulo"
"dev"
True
"curso"
"Python"
# Criando e acessando
pessoa = {
    "nome":   "Lucilia",
    "idade":  21,
    "cidade": "São Paulo",
    "dev":    True,
    "curso":  "Python"
}

print(pessoa["nome"])          # → Lucilia
print(pessoa["idade"])         # → 21
print(pessoa.get("email", "N/A")) # → N/A (não existe, sem erro)

Adicionando, alterando e removendo

aluno = {"nome": "Lucilia", "nota": 8.5}

# Adicionar nova chave
aluno["turma"] = "A"              # {"nome":"Lucilia","nota":8.5,"turma":"A"}

# Alterar valor existente
aluno["nota"] = 9.0              # atualiza a nota

# Remover uma chave
del aluno["turma"]               # remove "turma"
nota = aluno.pop("nota")         # remove e guarda o valor

# Verificar se chave existe
if "nome" in aluno:
    print("Chave encontrada!")

Principais métodos

keys()

Retorna todas as chaves do dicionário.

d.keys()
# dict_keys(["nome","idade"])
values()

Retorna todos os valores do dicionário.

d.values()
# dict_values(["Lucilia", 21])
items()

Retorna todos os pares chave-valor como tuplas.

d.items()
# [("nome","Lucilia"),...]
get(chave, pad)

Retorna o valor ou o padrão se a chave não existir. Evita erros.

d.get("x", 0) # → 0
update(outro)

Mescla outro dicionário no atual, atualizando valores.

d.update({"cor": "azul"})
clear()

Remove todos os itens do dicionário, deixando-o vazio.

d.clear() # → {}
pessoa = {"nome": "Lucilia", "idade": 21, "curso": "Python"}

# Percorrendo chaves e valores juntos
for chave, valor in pessoa.items():
    print(f"{chave}: {valor}")
# nome: Lucilia
# idade: 21
# curso: Python

# Dict comprehension
quadrados = {n: n**2 for n in range(1, 6)}
print(quadrados)  # → {1:1, 2:4, 3:9, 4:16, 5:25}

Dicionários aninhados

🪆 Dicionário dentro de dicionário

O valor de uma chave pode ser qualquer tipo, inclusive outro dicionário. Muito usado para representar objetos complexos do mundo real.

turma = {
    "aluno1": {"nome": "Lucilia", "nota": 9.0},
    "aluno2": {"nome": "Carlos",  "nota": 7.5},
    "aluno3": {"nome": "Ana",     "nota": 8.0},
}

print(turma["aluno1"]["nome"])  # → Lucilia
print(turma["aluno2"]["nota"])  # → 7.5

for id, aluno in turma.items():
    print(f"{aluno['nome']}: {aluno['nota']}")