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.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Cadastro com dicionário: a ficha completa.
Os objetivos desta aula. 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.
Veja o essencial, parte por parte.
A ficha: um dicionário que descreve alguém. Ficha de cadastro é um dicionário em que cada campo tem nome: aluno = {"nome": "Ana", "idade": 21}.
Percorrendo a ficha com for e items. for campo in aluno: percorre as chaves (é o comportamento padrão).
A agenda: dicionários dentro de uma lista. Esquecer a vírgula entre um dicionário e o próximo dentro da lista: o Python reclama de sintaxe.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
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.5A 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ásicoO 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ásicoO 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-3333A 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.