Como usar loops com listas em Python
Se você usou arrays em outras linguagens de programação, pode encontrar algo semelhante na forma de listas em Python. A única diferença é que as listas Python vêm com um benefício adicional – o tamanho dinâmico. Assim como os arrays, você pode usá-los para armazenar mais de um item.
Por que o loop é necessário?
Ao trabalhar com listas, haverá momentos em que você precisará realizar a mesma operação em cada entrada na lista.
Por exemplo, você pode querer calcular a média de todas as entradas de uma lista. Em uma observação semelhante, e se você armazenou blogs em uma lista e gostaria de obter seu título?
Todos esses cenários têm o mesmo problema: eles envolvem repetição. Para resolver essas questões, você pode simplesmente usar loops com listas em Python.
Vamos ver como os loops facilitam a execução de operações em vários itens em uma lista com um exemplo.
Noções básicas sobre loops com listas por meio de um exemplo
Suponha que você queira imprimir uma lista dos Nadadores Americanos do Ano de 2016 a 2019 (ninguém foi premiado em 2020 devido ao COVID-19). Sem loops, você terá que recuperar cada nome um por um da lista. No entanto, existem dois problemas principais com este método:
- Imprimir cada nome é repetitivo e demorado quando você está trabalhando com uma lista longa.
- Modificar o código para cada instância requer um esforço considerável.
Felizmente, um loop for pode resolver esses dois problemas de maneira eficiente. Considere o seguinte código:
swimmers = [ 'phelps' , 'dressel' , 'kalisz' , 'dressel' ]
for swimmer in swimmers:
print(swimmer)
Vamos dissecar esse código em três etapas:
- Você define uma lista de nadadores e armazena os nomes dos vencedores nela.
- Você define um loop for, extrai um nome da lista de nadadores um por um e atribui-o à variável nadador .
- Você pede ao Python para imprimir um nome que é atribuído ao nadador naquela iteração específica.
Agora, Python continua a reiterar as 2ª e 3ª etapas para imprimir todos os nadadores de sua lista. Para sua conveniência, você pode ler assim: “Para cada nadador em minha lista de nadadores, exiba o nome do nadador.” Aqui está o resultado:
Uma breve olhada nos loops
O tópico de loop é crucial porque é uma das principais abordagens para automatizar tarefas repetitivas. Por exemplo, em nosso arquivo swimmers.py , Python processa a primeira linha do loop:
for swimmer in swimmers:
Aqui, você diz ao Python para buscar o primeiro valor de sua lista, nadadores. Em seguida, ele o atribui ao nadador de variável definida. Como o primeiro valor é 'phelps', a seguinte declaração se aplica a ele:
print (swimmer)
É importante entender que Python está imprimindo o valor mais atual do nadador neste estágio , que por acaso é 'phelps'. Como a lista consiste em vários valores, Python volta para a primeira linha do loop:
for swimmer in swimmers:
Desta vez, Python buscará o próximo nome de sua lista, 'dressel' e o atribuirá à variável nadador. Novamente, o Python executará o seguinte trecho de código:
print (swimmer)
Agora, Python imprime o valor mais atual de nadador , que por acaso é 'dressel'. Da mesma forma, Python irá reiterar o loop e imprimir 'kalisz' e 'dressel'.
Depois de imprimir o último valor, o Python vai para a primeira linha do loop novamente e, como não há mais entrada, ele irá para a próxima linha. Neste programa, não há nada após o loop for, então ele termina.
Conforme você continua percorrendo as listas, tenha em mente que qualquer que seja a etapa definida em seu código, ela será reiterada uma vez para cada entrada da lista, independentemente do comprimento da lista. Isso significa que mesmo se você adicionar um bilhão de entradas à sua lista, o Python executará sua ação definida um bilhão de vezes.
Outra coisa a notar é que, ao definir seus loops for, você pode escolher qualquer nome para a variável temporária atribuída a cada entrada na lista. Porém, é recomendável escolher um nome que se ajuste ao seu contexto para melhor legibilidade do código.
Por exemplo, aqui está uma abordagem eficaz para percorrer uma lista de produtos, pássaros e atores:
for product in products:
for bird in birds:
for actor in actors:
Agora que você tem uma compreensão básica do loop for, manipula cada item de sua lista. Voltando ao exemplo do nadador, você pode elogiar cada nadador por suas habilidades escrevendo o seguinte código:
swimmers = ['phelps', 'dressel', 'kalisz', 'dressel']
for swimmer in swimmers:
print(f"{swimmer.title()}, your swimming skills are terrific!")
Este código funciona exatamente como o anterior; a única diferença é que você cria uma mensagem para cada nadador chamando seus nomes. Como antes, o loop executa novamente cada nadador e imprime uma declaração para cada um deles. Como esperado, a saída gerada é mostrada abaixo:
Você também pode escrever várias instruções no loop for. Lembre-se de que o loop abrange todas as linhas recuadas que vêm depois de swimmer em swimmers, e o Python executa cada linha uma vez para cada valor da lista. Portanto, há possibilidades infinitas para todas as entradas da lista.
Por exemplo, você pode escrever outra declaração de impressão no exemplo acima.
swimmers = ['phelps', 'dressel', 'kalisz', 'dressel']
for swimmer in swimmers:
print(f"{swimmer.title()}, your swimming skills are terrific!")
print(f"Looking forward to see your in the next competition, {swimmer.title()}.
")
Como você usou indentação para ambas as instruções, o Python executa cada uma delas para cada entrada na lista.
Depois de completar o loop, você pode resumir sua produção e então passar para outras partes de seu programa. Esta parte pós-loop não deve ser indentada, portanto, não é repetida.
Agora você pode percorrer listas facilmente
Neste artigo, você aprendeu por que os loops são necessários, como usar loops com listas e como o Python processa entradas em uma lista quando ela é recuada em um loop. Agora você pode usar listas e loops para escrever códigos mais complexos e criar programas de qualidade superior.
Para testar seus conhecimentos, aqui está um exercício simples: crie uma lista de 10 números e imprima apenas os números divisíveis por cinco.