Dicionários: chave e valor
Objetivo da aula
Representar registros e associações por chaves significativas.
Regra desta aula: vamos assumir que você nunca viu este assunto antes. Nenhum termo importante será usado sem explicação e todo exemplo deve ser entendido linha por linha, não apenas copiado.
Começando do zero
Dicionário (dict) associa chaves a valores. Em vez de acessar apenas por posição, você pode buscar um dado pelo nome da chave. Isso é ótimo para representar registros como pessoa, produto ou tarefa.
Uma imagem mental para entender
Pense em um armário com gavetas etiquetadas “nome”, “idade” e “cidade”. Você não precisa lembrar que “cidade está na terceira gaveta”; usa a etiqueta. Dicionários funcionam com essa ideia de chave → valor.
Conceitos essenciais, sem pular etapas
Chave e valor
Em {"nome": "Ana", "idade": 20}, "nome" e "idade" são chaves; os dados associados são valores.
Acesso
pessoa["nome"] exige que a chave exista; caso contrário, ocorre KeyError.
get()
pessoa.get("telefone") retorna None se a chave não existir, ou outro padrão se fornecido. Isso é útil quando a ausência é aceitável e tratada explicitamente.
Atualização
pessoa["idade"] = 21 altera a associação para aquela chave. Uma nova chave pode ser criada da mesma forma.
Iteração
Podemos percorrer chaves, valores ou pares com métodos como items().
Modelo mental
CHAVE → CONSULTA/ATRIBUIÇÃO → VALOR → REGISTRO ESTRUTURADO
Exemplo 1 — primeiro veja o programa inteiro
pessoa = {
"nome": "Ana",
"idade": 20,
"cidade": "Recife"
}
print(pessoa["nome"])
pessoa["idade"] = 21
pessoa["ativo"] = True
print(pessoa)
Agora vamos ler linha por linha
- O literal usa chaves e valores separados por dois pontos.
- O acesso por
"nome"busca semanticamente o campo, não uma posição numérica. - A idade é atualizada pela mesma chave.
"ativo"não existia e é adicionado com valor booleano.
Saída esperada
O nome é mostrado e depois o dicionário atualizado.
Exemplo 2 — o mesmo conceito em outra situação
produto = {"nome": "Caderno", "preco": 12.5}
print(produto.get("estoque"))
print(produto.get("estoque", 0))
A primeira busca retorna None; a segunda usa 0 como valor padrão. Isso não cria a chave no dicionário, apenas define o retorno da consulta.
Experimento guiado
Não pule esta parte. Programação só começa a fazer sentido quando você prevê um resultado, executa e compara a previsão com o que realmente aconteceu.
- Crie um dicionário de livro com título, autor e páginas.
- Altere o número de páginas e adicione uma chave
disponivel. - Teste acesso direto a uma chave inexistente e depois compare com
get(). - Percorra
for chave, valor in dicionario.items()e mostre os pares.
Mini desafio
Crie um dicionário para uma tarefa com título, duração em minutos e estado concluído. Depois marque-a como concluída.
Solução comentada
tarefa = {
"titulo": "Estudar listas",
"duracao_min": 40,
"concluida": False
}
tarefa["concluida"] = True
print(tarefa)
Depois de executar a solução, altere pelo menos um valor e explique por que o novo resultado mudou. Se você só copiou e não consegue explicar cada linha, refaça o desafio em uma versão menor.
Erros comuns e por que acontecem
- Confundir chave com posição e tentar
pessoa[0]quando as chaves são strings. - Acessar chave ausente com colchetes sem prever
KeyError. - Usar
get()e ignorar queNonepode significar ausência. - Criar chaves inconsistentes como
"nome","Nome"e"NOME"para o mesmo conceito.
Cheque se você realmente entendeu
O que um dicionário associa?
Resposta: Chaves a valores.
Qual a diferença básica entre d["x"] e d.get("x") quando x não existe?
Resposta: O acesso por colchetes gera KeyError; get() retorna um padrão, normalmente None.
Como atualizar uma chave existente?
Resposta: Atribuindo um novo valor: d[chave] = valor.
Resumo em linguagem simples
Nesta aula, o ponto central foi Dicionários: chave e valor. Tente explicar o modelo CHAVE → CONSULTA/ATRIBUIÇÃO → VALOR → REGISTRO ESTRUTURADO sem olhar a tela. Depois, escreva um exemplo próprio menor que os apresentados. Esse exercício de explicação é parte do aprendizado, não um extra.
Conexão com a próxima aula
Na próxima aula, Processando coleções de registros, vamos aproveitar exatamente o que foi construído aqui. Você não precisa memorizar tudo; precisa conseguir reconhecer o conceito e reconstruí-lo com raciocínio e testes.