Módulo 11 - Tuplas, dicionários e conjuntos

Cadastro com dicionário: a ficha completa

10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026

O que você vai aprender

  • Modelar uma ficha de cadastro com um dicionário de campos nomeados.
  • Percorrer um dicionário com for chave in dicionario.
  • Usar o método items para receber chave e valor juntos no for.
  • Combinar lista e dicionário: várias fichas numa agenda.

A ficha: um dicionário que descreve alguém

Na aula passada, o dicionário mapeou várias pessoas para as suas idades. Agora vem o segundo grande uso, talvez o mais frequente da vida real: descrever UMA coisa com vários campos. Um aluno tem nome, idade, cidade, curso e nota. Guardar isso em cinco variáveis soltas funciona para um aluno; para dois, vira dez variáveis; para trinta, um pesadelo. A ficha resolve: um dicionário por aluno, com cada informação atrás da sua etiqueta.

aluno = {
    "nome": "Ana Souza",
    "idade": 21,
    "cidade": "Recife",
    "curso": "Python Básico",
    "nota": 8.5,
}

print(aluno["nome"])
print(aluno["nota"])

# Saída:
# Ana Souza
# 8.5

A ficha: um dicionário, cinco campos nomeados. Cada linha interna é um par chave: valor.

Repare na escrita em várias linhas, com um par por linha e vírgula no fim de cada um: é o formato preferido para fichas, porque dá para ler como um formulário. Repare também nos tipos misturados sem cerimônia: texto no nome, inteiro na idade, decimal na nota. O dicionário não liga para o tipo do valor; ele só exige que cada campo tenha a sua chave.

Se este formato lhe pareceu familiar, não é impressão: é praticamente o mesmo desenho do JSON, o formato que sites e aplicativos usam para trocar dados pela internet. Quando a trilha chegar nessa parte, você vai olhar para uma resposta de API e reconhecer uma velha amiga: a ficha desta aula, com outra roupa.

Percorrendo a ficha com for e items

Imprimir a ficha campo a campo, com print para cada chave, funciona, mas não escala: dez campos seriam dez prints, e um campo novo exigiria lembrar de mais um. O for que você conhece do módulo 9 resolve. Só tem um detalhe que surpreende todo iniciante: o for direto num dicionário percorre as CHAVES, não os valores.

aluno = {"nome": "Ana Souza", "idade": 21, "curso": "Python Básico"}

for campo in aluno:
    print(campo, "->", aluno[campo])

# Saída:
# nome -> Ana Souza
# idade -> 21
# curso -> Python Básico

O for entrega cada chave; o valor correspondente vem com aluno[campo].

Funciona, mas o Python oferece um jeito mais elegante: o método items, que entrega a chave e o valor juntos a cada volta. Combinado com o desempacotamento da aula 1 deste módulo (sim, cada par é uma tupla por baixo dos panos), o laço fica limpo de ler: para cada campo e valor na ficha, mostre os dois.

aluno = {"nome": "Ana Souza", "idade": 21, "curso": "Python Básico"}

for campo, valor in aluno.items():
    print(f"{campo}: {valor}")

# Saída:
# nome: Ana Souza
# idade: 21
# curso: Python Básico

O items entrega os pares prontos: campo e valor desempacotados a cada volta do for.

A agenda: dicionários dentro de uma lista

Uma ficha descreve uma pessoa. E trinta pessoas? Aqui as estruturas do curso se encaixam como peças: a lista guarda muitos itens, o dicionário descreve um item com campos nomeados, então uma lista DE dicionários guarda muitas fichas. É o desenho de toda agenda de contatos, todo cadastro de clientes e toda lista de tarefas com detalhes, incluindo a do projeto final do curso.

contatos = [
    {"nome": "Ana Souza", "telefone": "(81) 99999-1111"},
    {"nome": "Bruno Lima", "telefone": "(11) 99999-2222"},
    {"nome": "Carla Dias", "telefone": "(31) 99999-3333"},
]

for contato in contatos:
    print(f"{contato['nome']}: {contato['telefone']}")

# Saída:
# Ana Souza: (81) 99999-1111
# Bruno Lima: (11) 99999-2222
# Carla Dias: (31) 99999-3333

A agenda: a lista é o arquivo, cada dicionário é uma ficha, o for imprime o catálogo.

Leia o for com calma, porque ele junta tudo o que você aprendeu: a cada volta, a variável contato recebe um dicionário inteiro da lista, e dentro do laço você acessa os campos dele pela chave, como sempre. Adicionar um contato novo é um append de um dicionário; buscar alguém é percorrer a lista comparando o campo nome. Nenhuma peça nova, só as conhecidas trabalhando juntas.

Guarde este desenho com carinho: no módulo 16, cada tarefa do seu gerenciador será um dicionário com título e situação, e a lista de tarefas será exatamente isto que você acabou de escrever. A distância entre a agenda de três contatos e o projeto final é bem menor do que parece.

Teste rápido

O que o laço for campo, valor in aluno.items() entrega a cada volta?

Perguntas frequentes

Quantos campos uma ficha pode ter?
Na prática, quantos você precisar; o dicionário não impõe limite útil de campos. O bom senso manda mais que a técnica: uma ficha com os campos que o programa realmente usa é fácil de ler, e campos que ninguém consulta são peso morto.
Por que o for do dicionário entrega as chaves e não os valores?
Porque a chave é o identificador: com ela você chega ao valor quando quiser, com dicionario[chave]. O contrário não vale, já que valores podem se repetir. De todo jeito, você escolhe o passeio: keys para chaves, values para valores, items para os pares.
Como adiciono uma ficha nova na agenda?
Com o append do módulo 10: contatos.append({"nome": "Duda", "telefone": "(21) 99999-4444"}). A lista de fora se comporta como qualquer lista; o fato de os itens serem dicionários não muda nada para o append.
Como encontro uma pessoa pelo nome na lista de fichas?
Percorrendo com for e comparando o campo: for contato in contatos, e dentro, if contato["nome"] == "Bruno". É a busca linear que você já fez com listas simples, agora olhando um campo do dicionário. Na prática deste módulo isso vira exercício.
Posso usar items direto na lista de contatos?
Não, o items é método de dicionário, e contatos é uma lista. A ordem certa é: for contato in contatos percorre a lista, e aí dentro, se quiser todos os campos da ficha, for campo, valor in contato.items(). Cada estrutura com o seu passeio.
E se duas fichas tiverem o mesmo nome?
A lista aceita numa boa, porque cada dicionário é um item independente; homônimos convivem. Se o seu programa precisa distinguir as pessoas, o caminho é um campo de identificação único na ficha, como um código de matrícula, que é como os sistemas reais resolvem.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.