Módulo 11 - Tuplas, dicionários e conjuntos
Lista ou tupla: como escolher a certa
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Aplicar a pergunta que decide entre lista e tupla em um segundo.
- Classificar dados reais do dia a dia como mutáveis ou fixos.
- Entender a tupla como sinal de intenção para quem lê o código.
- Evitar os dois excessos: tupla em tudo ou lista em tudo.
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: Lista ou tupla: como escolher a certa.
Os objetivos desta aula. Aplicar a pergunta que decide entre lista e tupla em um segundo. Classificar dados reais do dia a dia como mutáveis ou fixos. Entender a tupla como sinal de intenção para quem lê o código. Evitar os dois excessos: tupla em tudo ou lista em tudo.
Veja o essencial, parte por parte.
A pergunta que decide em um segundo. A pergunta: esse dado vai mudar ao longo do programa? Se sim, lista. Se é um registro fixo, tupla.
Exemplos do mundo real, lado a lado. Teoria entendida, vamos calibrar o olho com casos concretos.
Tupla como recado para quem lê. Não sabe qual usar? Comece com lista: ela faz tudo o que a tupla faz e mais um pouco.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
A pergunta que decide em um segundo
Toda vez que você for guardar vários valores juntos, faça uma única pergunta: esse conjunto vai mudar enquanto o programa roda? A lista de tarefas do usuário muda o tempo todo, então é lista. As coordenadas da sede da empresa não mudam nunca durante a execução, então são tupla. A pergunta parece simples demais para ser o critério oficial, mas é. Programadores experientes fazem essa escolha em um segundo, e é essa pergunta que eles fazem.
Peça lista quando
- Itens entram e saem durante o programa (compras, tarefas, fila de espera)
- A quantidade de itens é imprevisível
- Você precisa de append, remove ou ordenação
- O usuário alimenta a coleção pelo input
Peça tupla quando
- Os valores formam um registro que nasce pronto (coordenadas, data, RG e nome)
- A quantidade de itens é conhecida e fixa
- Mudar um valor seria um erro que você quer que exploda cedo
- O dado é uma constante do programa (dias da semana, meses do ano)
Repare que o critério não é tamanho nem tipo de conteúdo: é comportamento ao longo do tempo. Uma coleção de dois itens pode ser lista, se esses dois itens trocam de valor; uma coleção de cem itens pode ser tupla, se os cem nasceram prontos e ficam assim. O que decide é a vida do dado, não a cara dele.
Exemplos do mundo real, lado a lado
Teoria entendida, vamos calibrar o olho com casos concretos. A tabela abaixo pega dados que qualquer programa brasileiro encontra e aplica a pergunta da seção anterior. Leia cada linha e confira se a sua intuição bate com a resposta antes de olhar a terceira coluna.
| Dado | Muda durante o programa? | Estrutura certa |
|---|---|---|
| Lista de compras do usuário | Sim, itens entram e saem a cada escolha | Lista |
| Coordenadas de um endereço (lat, lon) | Não, o lugar não anda | Tupla |
| RG e nome de uma pessoa | Não, é um registro de identificação | Tupla |
| Dias da semana | Não, segunda continua depois do domingo | Tupla |
| Tarefas pendentes do dia | Sim, você conclui e adiciona tarefas | Lista |
| Notas digitadas numa prova em andamento | Sim, cada aluno acrescenta a sua | Lista |
Seis dados, uma pergunta. O comportamento no tempo decide a estrutura.
# Registro fixo: nasce pronto, fica assim
dias_da_semana = ("segunda", "terça", "quarta", "quinta", "sexta", "sábado", "domingo")
sede_da_empresa = (-23.5505, -46.6333) # latitude e longitude de São Paulo
# Coleção viva: muda a cada interação
tarefas = ["estudar módulo 11", "pagar boleto"]
tarefas.append("marcar dentista")
print(len(dias_da_semana))
print(tarefas)
# Saída:
# 7
# ['estudar módulo 11', 'pagar boleto', 'marcar dentista']Os dois mundos no mesmo programa: tuplas para o que é fixo, lista para o que vive.
Note o caso das coordenadas: latitude e longitude só fazem sentido juntas e na ordem certa. Trocar uma delas por engano cria um endereço que não existe. É o exemplo perfeito de registro fixo, e é por isso que praticamente todo sistema de mapas representa pontos como pares imutáveis.
Tupla como recado para quem lê
Existe um segundo motivo para usar tupla, mais sutil e igualmente valioso: comunicação. Código é lido muito mais vezes do que é escrito, inclusive por você mesmo daqui a três meses, sem lembrar de nada. Quando o leitor encontra parênteses, recebe um recado imediato: este dado é um registro fechado, ninguém mexe nele. Colchetes dizem o contrário: espere mudanças por aqui.
Esse recado economiza investigação. Diante de uma lista, quem lê precisa procurar no resto do programa onde ela cresce ou encolhe para entender o fluxo. Diante de uma tupla, essa busca morre antes de começar. Em programas de 20 linhas a diferença é pequena; no projeto final do curso, e em qualquer código profissional, escolher a estrutura certa é metade da clareza.
Guarde a pergunta desta aula, porque ela volta já na próxima com um sotaque novo. O dicionário, que você vai conhecer agora, resolve um problema que nem a lista nem a tupla alcançam: dar nome a cada valor guardado. E aí a decisão deixa de ser entre duas estruturas e passa a ser entre quatro.
Teste rápido
Um programa guarda a latitude e a longitude fixas de uma loja. Qual estrutura combina melhor e por quê?
Perguntas frequentes
- E se eu usar lista para tudo? Funciona?
- Funciona, e muito programa por aí faz isso. O custo aparece com o tempo: dados fixos guardados em lista podem ser alterados por engano sem nenhum aviso, e quem lê o código não sabe o que deveria mudar e o que não deveria. A tupla custa zero para usar e compra essas duas proteções.
- Tupla é mais rápida que lista?
- Em geral, um pouco: o Python consegue otimizar estruturas que não mudam. Mas para os programas deste curso a diferença é invisível, e escolher tupla por velocidade é motivo errado. Escolha pelo comportamento do dado; a performance vem de brinde.
- Posso ter uma lista dentro de uma tupla?
- Pode, e aí mora uma pegadinha famosa: a tupla trava os SEUS itens, mas se um item é uma lista, o conteúdo interno da lista continua mutável. Para este curso, a regra prática é não misturar: registro fixo com valores simples dentro. Estruturas aninhadas ganham cuidado próprio mais adiante na trilha.
- Como transformo uma lista que não muda mais em tupla?
- Com tuple(minha_lista), que cria uma tupla nova com os mesmos itens. É um padrão comum: o programa monta a coleção em etapas usando lista e, quando ela fica pronta, congela numa tupla para o resto da execução.
- Os dias da semana não deveriam ser lista, já que eu percorro com for?
- Percorrer é leitura, e leitura funciona igual nas duas estruturas. O critério não é como você lê, é se o conteúdo muda. Os dias da semana nunca ganham um oitavo item nem trocam de nome durante o programa, então tupla. O for passeia por ela normalmente.
- Existe algum caso em que sou obrigado a usar tupla?
- Existe, e você encontra um deles já nesta jornada: chaves de dicionário precisam ser imutáveis, então uma lista não pode ser chave, mas uma tupla pode. Também é comum funções devolverem tuplas quando retornam mais de um valor, assunto do módulo 13.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.