Percorrendo listas com for
Aprenda a visitar cada item de uma lista automaticamente.
Nas lições anteriores de loops, vimos como o loop for é especialista em percorrer sequências, como letras de uma palavra ou números em um intervalo.
Agora que já sabemos o que são listas, vamos juntar esses dois conceitos! O loop for é a ferramenta perfeita para percorrer listas, nos permitindo visitar cada item, do primeiro ao último, de forma totalmente automática.
Na programação, essa ação de passar por cada item de uma coleção é chamada de iteração.
Como funciona o for com listas?
Pense no for com listas como um leitor de código de barras no caixa do supermercado. Você passa as compras na esteira e a máquina faz o mesmo processo para cada produto individualmente: lê o preço, adiciona à conta final e passa para o próximo item, até que a esteira fique vazia.
A sintaxe é idêntica ao que já aprendemos:
for item_temporario in nome_da_lista:
# Código a ser executado para cada item (deve estar indentado!)
Exemplos Práticos
Exemplo 1: Enviando convites personalizados
Imagine que você tem uma lista com nomes de convidados e quer exibir uma mensagem de boas-vindas personalizada para cada um deles.
convidados = ["Ana", "Bruno", "Carlos", "Diana"]
# Para cada 'nome' que está dentro da lista 'convidados', execute:
for nome in convidados:
print("Olá, " + nome + "! Seu convite foi confirmado.")
O resultado no console será:
Olá, Ana! Seu convite foi confirmado.
Olá, Bruno! Seu convite foi confirmado.
Olá, Carlos! Seu convite foi confirmado.
Olá, Diana! Seu convite foi confirmado.
Nota didática: A variável
nomefoi criada por nós na linha dofor. A cada volta do loop, ela assume o valor de um elemento da lista: na primeira volta vale"Ana", na segunda vale"Bruno", e assim por diante.
Exemplo 2: Calculando o total da compra
E se tivermos uma lista com os preços de vários produtos e quisermos calcular a soma total deles? Nós usamos uma variável acumuladora fora do loop.
precos = [12.50, 5.00, 20.00, 8.50]
soma_total = 0.0
# Passa por cada preço da lista
for preco in precos:
soma_total = soma_total + preco # Acumula o valor na variável
print("O valor total das compras é: R$", soma_total) # Mostra: R$ 46.0
Exemplo 3: Filtrando itens por preço
Também podemos colocar condicionais if dentro do loop para analisar e tomar decisões individuais sobre cada item da lista. Vamos percorrer uma lista de produtos e mostrar apenas os produtos acima de R$ 30,00.
precos = [12.50, 45.00, 20.00, 99.90, 8.50]
print("Produtos acima de R$ 30,00")
for preco in precos:
if preco > 30.0:
print("Preço: ", preco)
O resultado no console mostrará apenas as opções que atendem à regra:
Produtos acima de R$ 30,00:
Preço: 45.0
Preço: 99.9
Exemplo 4: Encontrar o maior número
Dada uma lista de inteiros positivos, queremos percorrer a lista para encontrar o maior número. Assim como no exercício da soma, vamos criar uma variável para nos auxiliar. Esta variável vai ir guardando o maior valor encontrado até o momento. Vamos iniciar ela com 0.
numeros = [12, 9, 3, 44, 16]
maior = 0
for numero in numeros:
if numero > maior:
maior = numero
print("Maior número: ", maior)
O que acontece neste loop?
maiorcomeça com 0.- Na primeira iteração,
numerovale 12. 12 é maior que 0, logomaiorrecebe o valor 12. - Na segunda iteração,
numerovale 9. 9 não é maior que 12, entãomaiorpermanece com o valor 12. - Na terceira iteração,
numerovale 3. 3 não é maior que 12, entãomaiorpermanece com o valor 12. - Na quarta iteração,
numerovale 44. 44 é maior que 12, entãomaiorrecebe com o valor 44. - Na quinta e última iteração,
numerovale 16. 16 não é maior que 44, entãomaiorpermanece com o valor 44. - O programa mostra - "Maior número: 44".
E se quisessemos encontrar o menor número? Poderíamos fazer algo parecido. Porém, a variável de controle não pode começar em 0, pois nenhum número seria menor que ele! Neste caso, vamos supor que a nossa lista de positivos é limitada ao valor 1000. Neste caso, se iniciarmos a variável de controle em 1000, qualquer valor menor que 1000 que aparecer na lista será capaz de atualizar a variável.
numeros = [100, 89, 3, 1000, 65]
menor = 1000
for numero in numeros:
if numero < menor:
menor = numero
print("Menor número: ", menor)
O que acontece neste loop?
menorcomeça com 1000.- Na primeira iteração,
numerovale 100. 100 é menor que 1000, logomenorrecebe o valor 100. - Na segunda iteração,
numerovale 89. 89 é menor que 100, entãomenorrecebe com o valor 89. - Na terceira iteração,
numerovale 3. 3 é menor que 89, entãomenorrecebe o valor 3. - Na quarta iteração,
numerovale 1000. 1000 não é menor que 89, entãomenorpermanece com o valor 3. - Na quinta e última iteração,
numerovale 65. 65 não é maior que 3, entãomenorpermanece com o valor 3. - O promgrama mostra - "Menor número: 3".
Dica: sempre que precisar achar o MAIOR número em uma lista, inicie a variável de controle com o MENOR número possível. Sempre que precisar encontrar o MENOR número em uma lista, inicie a variável de controle com o MAIOR número possível.
O que aprendemos nesta lição
Nesta lição, você aprendeu que:
- Percorrer ou iterar uma lista significa visitar e processar cada um de seus elementos.
- O loop
foré a estrutura mais limpa e indicada para iterar sobre listas no Python. - A variável temporária declarada no
forassume automaticamente o valor de um item da lista a cada volta. - Podemos combinar loops sobre listas com acumuladores (variáveis fora do loop) e condicionais
if(dentro do loop) para realizar cálculos e filtros complexos de forma muito simples.