Enumeração Python

Resumo : neste tutorial, você aprenderá sobre a enumerate()função e como usá-la para enumerar uma sequência, iterador ou qualquer outro objeto que suporte iteração.

Introdução à função Python enumerate()

O exemplo a seguir define uma lista de frutas e usa o loop for-in para iterar sobre os elementos da lista e imprimi-los:

fruits = ['Apple', 'Orange', 'Strawberry']

for fruit in fruits:
    print(fruit)Linguagem de código:  Python  ( python )

Saída:

Apple
Orange    
StrawberryLinguagem de código:  Python  ( python )

Funciona bem como esperado.

Às vezes, você deseja adicionar índices à saída. Para fazer isso, você pode criar um contador de loop como este:

fruits = ['Apple', 'Orange', 'Strawberry']

index = 1

for fruit in fruits:
    print(f'{index}.{fruit}')
    index += 1Linguagem de código:  Python  ( python )

Saída:

1.Apple
2.Orange
3.StrawberryLinguagem de código:  Python  ( python )

Neste exemplo, o índice acompanha os índices. Este exemplo também funciona conforme o esperado. Mas Python tem uma solução melhor com a enumerate()função:

fruits = ['Apple', 'Orange', 'Strawberry']

for index, fruit in enumerate(fruits, start=1):
    print(f'{index}.{fruit}')Linguagem de código:  Python  ( python )

Saída:

1.Apple
2.Orange
3.StrawberryLinguagem de código:  Python  ( python )

Com a enumerate()função, você pode obter o mesmo resultado com menos código. Além disso, você não precisa acompanhar o índice aumentando-o a cada iteração.

A enumerate()é uma função integrada com a seguinte sintaxe:

enumerate(iterable, start=0)Linguagem de código:  Python  ( python )

A enumerate()função aceita dois argumentos:

  • iterableé uma sequência , um iterador ou qualquer objeto que suporte o protocolo iterável .
  • starté o número inicial a partir do qual a função começa a contar. O padrão é zero.

A enumerate()função retorna um objeto enumerado. O __next__()método do objeto enumerado retornado retorna uma tupla que contém uma contagem e o valor obtido da iteração sobre o iterável.

Enumeração Python

Veja o exemplo a seguir:

fruits = ['Apple', 'Orange', 'Strawberry']

e = enumerate(fruits, start=1)
print(type(e))Linguagem de código:  Python  ( python )

Neste exemplo, a enumerate()função retorna equal é uma instância da enumerateclasse:

<class 'enumerate'>Linguagem de código:  Python  ( python )

A classe enumerate possui o __next__()método que retorna uma tupla:

fruits = ['Apple', 'Orange', 'Strawberry']

e = enumerate(fruits, start=1)

print(e.__next__())Linguagem de código:  Python  ( python )

Saída:

(1, 'Apple')Linguagem de código:  Python  ( python )

Se você continuar chamando o __next__()método, ele retornará o próximo número de contagem com o valor da lista:

fruits = ['Apple', 'Orange', 'Strawberry']

e = enumerate(fruits, start=1)

print(e.__next__())
print(e.__next__())
print(e.__next__())Linguagem de código:  Python  ( python )

Saída:

(1, 'Apple')
(2, 'Orange')
(3, 'Strawberry')Linguagem de código:  Python  ( python )

Quando todos os itens da lista são iterados, chamar o __next__()método gerará uma StopIterationexceção:

fruits = ['Apple', 'Orange', 'Strawberry']

e = enumerate(fruits, start=1)

print(e.__next__())
print(e.__next__())
print(e.__next__())

print(e.__next__())  # StopIterationLinguagem de código:  Python  ( python )

O enumerate()é funcionalmente equivalente à seguinte função:

def enumerate(iterable, start=0):
    index = start
    for item in iterable:
        yield index, item
        index += 1Linguagem de código:  Python  ( python )

Resumo

  • Use enumerate()a função Python para obter itens de um iterável com um contador.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *