O autor da nota, que estamos publicando hoje, quer falar sobre alguns dos recursos do uso
for
loops no Python.

O loop for é um dos pilares da programação. Os futuros programadores se familiarizam com esses ciclos no início de seus estudos e, após o primeiro conhecimento, os usam constantemente.
Se você começou a desenvolver em Python, tendo experiência em trabalhar com outra linguagem de programação popular, como PHP ou JavaScript, está familiarizado com a técnica de usar uma variável de contador que armazena, por exemplo, o índice do elemento atual da matriz que está sendo processada em um loop. Aqui está um exemplo de como trabalhar com um loop escrito em JavaScript:
let scores = [54,67,48,99,27]; for(const i=0; i < scores.length; i++) { console.log(i, scores[i]); }
Ao trabalhar com loops, é muito importante entender que esses loops não repetem as matrizes. Eles apenas fornecem ao programador um mecanismo para trabalhar com a variável counter, que é usada para acessar os elementos das matrizes processadas.
No exemplo anterior, a variável
i
não possui nenhuma relação explícita com a matriz de
scores
. Ele apenas armazena um determinado número, que aumenta em 1 em cada iteração do loop e que, como se vê, é adequado para acesso seqüencial aos elementos da matriz por seus índices.
Maneira antiga (sem êxito) de trabalhar com matrizes
O Python não possui tradicionais loops como o mostrado acima. É verdade que, se você é como eu, seu primeiro desejo em dominar o Python será encontrar uma maneira de criar um loop que seja familiar e conveniente para você trabalhar.
Como resultado, você pode detectar a função
range()
e escrever em Python algo semelhante ao seguinte:
scores = [54,67,48,99,27] for i in range(len(scores)): print(i, scores[i]) """ 0 54 1 67 2 48 3 99 4 27 """
O problema desse loop é que ele não se encaixa muito bem na ideologia Python. Nele, não iteramos sobre a lista, mas, em vez disso, usamos a variável auxiliar
i
para acessar os elementos da lista.
De fato, mesmo em JavaScript, existem métodos que permitem iterar sobre matrizes, por assim dizer, sem intermediários. Estes são
forEach
e
for of
loops.
Usando a função enumerate ()
Se você precisar rastrear adequadamente o "índice de um elemento" em um loop
for
Python, a função
enumerate()
, que permite "recalcular" o objeto iterável, pode ser adequada. Ele pode ser usado não apenas para processar listas, mas também para trabalhar com outros tipos de dados - com strings, tuplas, dicionários.
Essa função usa dois argumentos: um objeto iterável e um valor opcional de contador inicial.
Se o valor inicial do contador
enumerate()
não for passado, é, por padrão, definido como
0
. A função cria um objeto que gera tuplas consistindo no índice do elemento e desse próprio elemento.
scores = [54,67,48,99,27] for i, score in enumerate(scores): print(i, score)
Esse código acabou sendo muito mais limpo que o código do exemplo anterior. Deixamos o trabalho com a lista de índices, iteramos sobre os próprios valores, obtendo acesso direto a eles no loop
for,
e vemos os valores com os quais trabalhamos na declaração do ciclo.
Aqui está um recurso interessante que atrairá aqueles que precisam exibir listas numeradas para que o número do primeiro elemento não seja
0
, de acordo com seu índice, mas
1
. Geralmente, para fazer isso, é necessário alterar o número exibido do elemento. Por exemplo - assim:
i + 1
. Ao usar a função
enumerate()
, basta passar para ela, como o segundo argumento, o número a partir do qual você deseja iniciar a numeração. No nosso caso -
1
:
scores = [54,67,48,99,27] for i, score in enumerate(scores, 1): print(i, score) """ 1 54 2 67 3 48 4 99 5 27 """
Sumário
Esperamos que esta pequena história sobre loops no Python tenha permitido que você aprenda algo novo sobre essa linguagem.
Caros leitores! Você conhece outras maneiras de usar a função
enumerate()
? Os loops criados usando
enumerate()
parecem mais legíveis do que os loops criados usando
range(len())
?
