Use a função enumerada no Python para criar loops com contadores

Use a função enumerada no Python para criar loops com contadores

Este artigo explicará o uso da função "enumerada" disponível na biblioteca de módulos padrão do Python. A função de enumerar permite atribuir um "índice" ou "contagem" a elementos em qualquer objeto iterável. Você pode implementar mais lógica neles, pois terá acesso a ambos os valores e uma contagem mapeada para ele.

Sintaxe e exemplo básico

Se você usou um loop "para" em outras linguagens de programação, especialmente a linguagem "C" e outros idiomas com sintaxe no estilo "C", você pode ter especificado um índice de partida no loop. Para referência, aqui está a aparência de um loop "for" em "C" e em outros idiomas com sintaxe semelhante:

para (int i = 0; i < 10; i++)

printf ("%d \ n", i);

A instrução LOOP inicializa uma variável com um valor de zero, verifica se é menor que um limite e o incrementa em uma contagem após avaliar a lógica dentro do bloco de loop (se a condição de parada for atendida). Dessa forma, você pode usar um índice e atribuí -lo a quaisquer objetos referenciados em seu bloco de loop. Em comparação, aqui está a aparência de um loop para o mesmo resultado no Python:

para i no intervalo (0, 10):
impressão (i)

A função "range" no Python permite especificar uma sequência de intervalo numérica que tenha uma etapa padrão de 1. Você pode alterar o valor da etapa fornecendo um terceiro argumento. O segundo argumento na função "range" é usado para definir o limite para a condição de parada. Ambas as amostras de código produzem a seguinte saída:

0
1
2
3
4
5
6
7
8
9

Esses loops funcionam bem se você quiser apenas gerar alguma sequência de números e associá -los a alguma lógica dentro da instrução loop. No entanto, você pode ter que usar outro loop aninhado ou a função de "rendimento" em qualquer tipo iterável para atribuir algum tipo de contagem rastreável. O método "enumerado" facilita a atribuição de índices a iteráveis ​​em uma declaração, eliminando assim a necessidade de executar vários loops aninhados. Dê uma olhada nesta amostra de código:

números = ["zero", "um", "dois", "três", "quatro", "cinco"]
enumerado_numbers = enumerar (números)
Para índice, item em enumerado_numbers:
Imprimir (índice, item)

A primeira declaração define uma nova variável chamada "números" e atribui um iterável (tipo de lista) a ele. A segunda declaração mostra o uso da função "enumerada", onde você fornece um iterável a ela como um argumento obrigatório. A terceira declaração converte a variável "enumerated_numbers" em um objeto de tipo de lista. Por padrão, a função "enumerada" gera um objeto do tipo "enumerar" e não um tipo iterável, então você deve convertê -lo. Depois de executar a amostra de código mencionada acima, você deve obter a seguinte saída:

[(0, 'zero'), (1, 'um'), (2, 'dois'), (3, 'três'), (4, 'quatro'), (5, 'cinco']]

A função "enumerada" atribui uma contagem a cada elemento em um tipo iterável e cria tuplas com valores emparelhados. Por padrão, a contagem começa de zero.

Agora que você atribuiu um número a cada elemento de um tipo iterável, você pode facilmente dar um pau sobre ele sem escrever declarações aninhadas:

números = ["zero", "um", "dois", "três", "quatro", "cinco"]
enumerado_numbers = enumerar (números)
Para índice, item em enumerado_numbers:
Imprimir (índice, item)

A amostra de código especificada acima produzirá a seguinte saída:

0 zero
1 um
2 dois
3 três
4 quatro
5 cinco

Você pode tornar o código mais curto usando a função "enumerar", como mostrado na amostra abaixo:

números = ["zero", "um", "dois", "três", "quatro", "cinco"]
Para índice, item em enumerado (números):
Imprimir (índice, item)

Usando enumerar com um índice de partida diferente

A função "Enumerate" leva um argumento opcional em que você pode especificar um índice inicial. Por padrão, é zero, mas você pode alterá -lo usando o argumento "Iniciar":

números = ["um", "dois", "três", "quatro", "cinco"]
Para índice, item em enumerar (números, start = 1):
Imprimir (índice, item)

Na segunda afirmação, o argumento "start = 1" é usado para alterar o ponto de partida. Depois de executar o exemplo de código especificado acima, você deve obter a seguinte saída:

1 um
2 dois
3 três
4 quatro
5 cinco

Atribuindo índice com etapas

Na primeira seção deste artigo, a sintaxe para “para” loop em linguagem “c” é mostrada onde você pode definir etapas entre cada contagem subsequente ou índice. A função "enumerada" no Python não tem nenhum argumento disponível para que você não possa especificar uma etapa entre as contagens. Você pode realmente escrever sua própria lógica para implementar as etapas dentro do bloqueio de loop “para” enumerado. No entanto, existe uma maneira de implementar etapas personalizadas escrevendo código mínimo. O exemplo a seguir mostra a implementação das etapas usando as funções "ZIP" e "Range":

números = ["zero", "dois", "quatro", "seis"]
Para índice, item em zip (intervalo (0, 7, 2), números):
Imprimir (índice, item)

A função "ZIP" permite criar pares pegando elementos com o mesmo índice de dois ou mais iteráveis. Portanto, a função "ZIP" aqui capta um elemento do iterable retornou da função "Range (0, 7, 2)" e outro elemento da lista "Numbers" e depois os combina com uma tupla. O resultado final é uma implementação idêntica à função "enumerar", mas com etapas personalizadas especificadas como um terceiro argumento na função "Range (0, 7, 2)" (2 neste caso). Depois de executar o exemplo de código especificado acima, você deve obter a seguinte saída:

0 zero
2 dois
4 quatro
6 seis

Conclusão

A função "enumerada" no Python permite que você escreva código conciso, atribuindo uma sequência numérica a elementos em um objeto iterável. Isso é realmente útil se você deseja acompanhar o índice de itens dentro de um tipo iterável. Se você deseja "enumerar" tipos iteráveis ​​com etapas personalizadas, use a função "ZIP" explicada no último exemplo.