Use a função Enumerate em Python para criar loops com contadores

Use Enumerate Function Python Create Loops With Counters



Este artigo explicará o uso da função enumerar disponível na biblioteca de módulo padrão do Python. A função Enumerar permite que você atribua um índice ou contagem a elementos em qualquer objeto iterável. Você pode então implementar mais lógica neles, pois terá acesso aos valores e a uma contagem mapeada para eles.

Sintaxe e exemplo básico

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







para (inteu= 0;eu< 10;eu++)

{

printf ('% d n',eu);

}

A instrução de loop inicializa uma variável com valor zero, verifica se é menor que um limite e a incrementa em uma contagem após avaliar a lógica dentro do bloco de loop (se a condição de parada for satisfeita). 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 for com o mesmo resultado em Python:



paraeuno faixa(0, 10):

imprimir (eu)

A função de intervalo em Python permite que você especifique uma sequência de intervalo de números que tem uma etapa padrão de 1. Você pode alterar o valor da etapa fornecendo um terceiro argumento. O segundo argumento na função de intervalo é usado para definir o limite para a condição de parada. Ambos os exemplos de código produzem a seguinte saída:



0

1

2

3

4

5

6

7

8

9

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





números= ['zero', '1', 'dois', 'três', 'quatro', 'cinco']

enumerated_numbers= listado(números)

paraíndice,itemnoenumerated_numbers:

imprimir (índice,item)

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

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

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



Agora que você atribuiu um número a cada elemento em um tipo iterável, pode facilmente fazer um loop sobre ele sem escrever instruções aninhadas:

números= ['zero', '1', 'dois', 'três', 'quatro', 'cinco']

enumerated_numbers= listado(números)

paraíndice,itemnoenumerated_numbers:

imprimir (índice,item)

O exemplo de código especificado 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 embutida, conforme mostrado no exemplo abaixo:

números= ['zero', '1', 'dois', 'três', 'quatro', 'cinco']

paraíndice,itemno listado(números):

imprimir (índice,item)

Usando Enumerar com um Índice Inicial Diferente

A função enumerar leva um argumento opcional onde você pode especificar um índice inicial. Por padrão, é zero, mas você pode alterá-lo usando o argumento start:

números= ['1', 'dois', 'três', 'quatro', 'cinco']

paraíndice,itemno listado(números,começar=1):

imprimir (índice,item)

Na segunda instruçã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 o loop for na linguagem C é mostrada, onde você pode definir as etapas entre cada contagem ou índice subsequente. A função enumerar em Python não tem nenhum argumento disponível, então você não pode especificar uma etapa entre as contagens. Na verdade, você pode escrever sua própria lógica para implementar etapas dentro do bloco de loop for enumerado. No entanto, existe uma maneira de implementar etapas personalizadas escrevendo um código mínimo. O exemplo a seguir mostra a implementação de etapas usando funções zip e range:

números= ['zero', 'dois', 'quatro', 'seis']

paraíndice,itemno fecho eclair(faixa(0, 7, 2),números):

imprimir (índice,item)

A função zip permite que você crie pares selecionando elementos com o mesmo índice de dois ou mais iteráveis. Portanto, a função zip aqui pega um elemento do iterável retornado da função range (0, 7, 2) e outro elemento da lista de números e os emparelha em 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 intervalo (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 enumerar em Python permite que você escreva um 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.