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.

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.

DadoMuda durante o programa?Estrutura certa
Lista de compras do usuárioSim, itens entram e saem a cada escolhaLista
Coordenadas de um endereço (lat, lon)Não, o lugar não andaTupla
RG e nome de uma pessoaNão, é um registro de identificaçãoTupla
Dias da semanaNão, segunda continua depois do domingoTupla
Tarefas pendentes do diaSim, você conclui e adiciona tarefasLista
Notas digitadas numa prova em andamentoSim, cada aluno acrescenta a suaLista

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.