Python suporta muitos objetos iteráveis: listas, tuplas e strings são apenas alguns. O loop for do Python é flexível o suficiente para lidar com esses objetos com facilidade. Em particular, evita que você tenha que lidar com o índice numérico de cada entrada.

Mas, às vezes, você desejará trabalhar com um índice, para contar ou filtrar itens em uma coleção, por exemplo. Saiba como você pode usar a função enumerate do Python para iterar em uma sequência enquanto acompanha o índice e o elemento.

Iterando sem enumerar()

Considere a seguinte lista de Python.

my_fruits = ["maçãs", "peras", "bananas"]

Suponha que você queira acompanhar a contagem de cada elemento na lista. Você poderia use um laço for com um variar() funcionar assim.

contagem = 0

por fruta dentro range (len (minhas_frutas)):
print (contagem, minhas_frutas[contagem])
contar += 1

Embora isso funcione, ele tem algumas deficiências:

  • Você tem que acompanhar a contagem fora do loop.
  • Você tem que incrementar a contagem em cada iteração.
  • Você tem que calcular o comprimento do loop.
  • instagram viewer
  • intervalo (len()) só funciona com objetos contáveis ​​e indexáveis.

Existe uma solução melhor: a função enumerate().

Como enumerate() funciona em Python

O Python enumerar() A função recebe uma coleta de dados e retorna um objeto enumerate. O objeto enumerate contém um contador como chave para cada item que o objeto contém. o enumerar() A função faz isso atribuindo a cada item uma contagem. Essa contagem corresponde ao número de iterações que a função concluiu para atingir esse valor.

Este contador facilita o acesso aos itens da coleção ou até mesmo a mutação da coleção sempre que possível.

Com enumerar(), você não precisa acompanhar o comprimento do loop ou a contagem de iterações. Você também pode evitar acessar explicitamente o valor usando o operador de índice, como frutas[contagem]. A função enumerate lida automaticamente com todos esses recursos.

A sintaxe do Python enumerate()

Abaixo está a sintaxe geral para a função enumerate().

enumerar (iterável, start=0)

enumerate() recebe dois argumentos:

  1. iterável: uma coleção de dados ou sequência sobre a qual o Python pode iterar. Por exemplo. uma lista ou tupla.
  2. start: o índice a partir do qual a função enumerate deve começar a contar.

Como enumerate() é implementado

Para entender como enumerar() funciona, vamos ver como ele é realmente implementado.

defenumerar(sequência, início=0):
n = início

por elemento dentro seqüência:
colheita n, ele
n += 1

Esta função, que você pode encontrar no Documentação de enumeração do Python, recebe uma sequência e um argumento inicial cujo padrão é 0.

A função então inicializa a variável n para a variável inicial. Isso mantém o controle do número de iterações.

No loop for que segue para cada elemento na sequência,

  • colheita pausa a execução do loop.
  • Ele também retorna a contagem atual (n) e o valor (elem).
  • Quando o loop é retomado, ele incrementa n.

O valor de retorno é um objeto de pares chave-valor.

Se você chamasse o enumerar() função e passar a lista de frutas, este seria o valor de saída.

my_fruits = ["maçãs", "peras", "bananas"]
enumerate_object = enumerate (my_fruits)
print (lista (enumerate_object))

# output - [(0, 'maçãs'), (1, 'peras'), (2, 'bananas')]

Enumerar com um índice inicial diferente

No exemplo acima, não especificamos o índice inicial. O exemplo abaixo mostra como você pode definir o índice inicial para um número de sua escolha.

Para começar em 10, faça o seguinte.

enumerate_object = enumerate (minhas_frutas, 10)
print (lista (enumerate_object))

# output - [(10, 'maçãs'), (11, 'peras'), (12, 'bananas')]

Python enumerate() Exemplos

Aqui estão alguns exemplos que mostram como você pode usar enumerar() em Python.

Enumerar uma string Python

Neste exemplo, você usará enumerate para recuperar a letra no índice 5:

minha_string = "makeuseof"

por contagem, valor dentro enumerar (my_string):
E se contagem == 5:
imprimir (valor)

# saída - s

Enumerar uma Tupla Python

Você também pode usar enumerar() iterar sobre um Tupla Python. Neste exemplo, o programa imprime um cabeçalho na primeira iteração, antes de exibir os itens.

my_fruits_tuple = ("maçãs", "peras", "bananas")

por índice, valor dentro enumerar (my_fruits_tuple):
E se (índice == 0):
print("Frutas:")

imprimir (valor)

/*
Frutas:
maçãs
peras
bananas
*/

Enumerar uma lista do Python

No exemplo abaixo, você está usando enumerar para decrementar todos os números na lista acima de 10 por 2.

my_number_list = [10, 17, 15, 6]

por índice, valor dentro enumerar (my_number_list):
E se (valor > 10):
my_number_list[index] -= 2

imprimir (my_number_list)

# saída - [10, 15, 13, 6]

Use enumerate para contar seus iteráveis

Python inclui enumerar() como uma função incorporada. Você pode usá-lo para iterar e contar itens em uma coleção iterável, como lista, tupla ou string. Ele pode ajudá-lo a acompanhar o índice verdadeiro de cada elemento, mas você também pode especificar seu próprio índice inicial. Use-o como alternativa ao variar() se você estiver trabalhando com objetos que não são objetos contáveis ​​e indexáveis.