Percorrendo e transformando listas
Objetivo da aula
Processar todos os itens e construir resultados derivados.
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
Percorrer uma lista permite aplicar uma regra a cada elemento. Em muitos casos, não queremos modificar a lista original; criamos uma nova lista com resultados transformados ou apenas com itens que satisfazem uma condição. Essa estratégia torna o fluxo mais explícito.
Uma imagem mental para entender
Imagine uma esteira com frutas. Para cada fruta, você pesa e coloca o peso em outra caixa. Ou separa apenas as frutas maduras. Percorrer, transformar e filtrar listas é a versão programável dessa esteira.
Conceitos essenciais, sem pular etapas
Percorrer diretamente
for item in lista fornece cada elemento sem exigir controle manual de índice.
Transformar
Para cada valor, calcule um novo valor e adicione em outra lista.
Filtrar
Use uma condição para decidir quais elementos entram no resultado.
Não alterar enquanto percorre sem necessidade
Remover elementos da mesma lista que está sendo percorrida pode produzir comportamentos difíceis de prever para iniciantes. Prefira construir outra lista quando o objetivo for filtrar.
Resultado explícito
Listas derivadas deixam claro o que era entrada e o que foi produzido pelo processamento.
Modelo mental
LISTA DE ENTRADA → for → REGRA DE TRANSFORMAÇÃO/FILTRO → LISTA DE SAÍDA
Exemplo 1 — primeiro veja o programa inteiro
numeros = [1, 2, 3, 4]
dobros = []
for numero in numeros:
dobro = numero * 2
dobros.append(dobro)
print("Originais:", numeros)
print("Dobros:", dobros)
Agora vamos ler linha por linha
dobroscomeça vazia.- A cada iteração, calculamos o dobro do item atual.
append()adiciona o resultado à nova lista.- A lista original permanece intacta.
Saída esperada
Originais: [1, 2, 3, 4]
Dobros: [2, 4, 6, 8]
Exemplo 2 — o mesmo conceito em outra situação
notas = [4, 8, 6, 9, 7]
aprovadas = []
for nota in notas:
if nota >= 7:
aprovadas.append(nota)
print(aprovadas)
Esse é um filtro: somente valores que satisfazem a condição entram na nova lista. Mais tarde você poderá conhecer sintaxes compactas, mas primeiro domine o fluxo explícito.
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.
- Trace a lista
dobrosapós cada iteração. - Crie uma lista de quadrados a partir de [1,2,3,4,5].
- Filtre apenas números pares de uma lista.
- Compare preservar a entrada com modificar a lista original.
Mini desafio
A partir de [3, -1, 8, 0, -5, 2], construa uma nova lista contendo somente os números positivos.
Solução comentada
valores = [3, -1, 8, 0, -5, 2]
positivos = []
for valor in valores:
if valor > 0:
positivos.append(valor)
print(positivos)
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
- Remover itens da mesma lista durante um
forsem entender o deslocamento dos índices. - Criar resultado fora da lógica correta e esquecer de inicializar a lista antes do laço.
- Confundir “transformar” com “filtrar”: um muda cada item; o outro seleciona alguns itens.
- Usar índices quando precisa apenas do valor atual.
Cheque se você realmente entendeu
O que é transformação de lista?
Resposta: Produzir valores derivados de cada elemento, geralmente em outra coleção.
O que é filtro?
Resposta: Selecionar apenas elementos que satisfazem uma condição.
Por que uma nova lista pode ser mais segura para filtrar?
Resposta: Porque evita modificar a coleção enquanto ela está sendo percorrida.
Resumo em linguagem simples
Nesta aula, o ponto central foi Percorrendo e transformando listas. Tente explicar o modelo LISTA DE ENTRADA → for → REGRA DE TRANSFORMAÇÃO/FILTRO → LISTA DE SAÍDA 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, Dicionários: chave e valor, 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.