Como usar Enumerate em Python (loop com índices)

Aprenda como usar a função enumerate() em Python. Obtenha índice e valor ao percorrer listas com exemplos limpos.

Experimente esta solução no Editor

Visão geral

Ao iterar sobre uma lista, tupla ou string, muitas vezes você precisará rastrear o índice atual de cada item junto com o próprio item. Um padrão comum para iniciantes é usar uma variável de contador separada que é incrementada manualmente ou usar `range(len(my_list))` para iterar por meio de índices. No entanto, Python fornece uma solução muito mais elegante, python e integrada: a função `enumerate()`.

A função `enumerate()` pega qualquer iterável como argumento e retorna um objeto enumerado, que produz pares de tuplas de índice-valor. Usando a descompactação de tupla em um loop `for`, você pode extrair o índice e o item simultaneamente. Isso elimina completamente a necessidade de variáveis ​​de contador manuais e colchetes de indexação, tornando seu código significativamente mais limpo e menos sujeito a erros off-by-one.

Por padrão, `enumerate()` inicia a contagem de índices a partir de `0`. No entanto, você pode passar um índice inicial personalizado usando o argumento opcional da palavra-chave `start` (por exemplo, `enumerate(items, start=1)`). Isso é extremamente útil ao exibir números de listas para usuários humanos, já que as pessoas normalmente esperam que as listas comecem a contar a partir de 1 em vez de 0.

Saída de código e execução

Este script demonstra a iteração em listas usando enumerate para obter pares de itens de índice, começando em 0 e 1.

use_enumerate.py
Experimente no Editor
fruits = ["apple", "banana", "cherry"]

# 1. Standard enumeration (starts at 0)
print("--- Standard Enumeration ---")
for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")

# 2. Enumeration starting at a custom index (e.g., 1)
print("\n--- Starting at 1 ---")
for num, fruit in enumerate(fruits, start=1):
    print(f"Item #{num}: {fruit}")
Saída terminal
--- Standard Enumeration ---
Index 0: apple
Index 1: banana
Index 2: cherry

--- Starting at 1 ---
Item #1: apple
Item #2: banana
Item #3: cherry

Implementação passo a passo

  • Passe sua lista (ou qualquer iterável) para a função enumerate() integrada.
  • Descompacte as tuplas retornadas em um loop for usando a sintaxe para índice, valor em enumerar(lista).
  • Forneça o parâmetro inicial (por exemplo, start=1) para modificar o valor inicial do contador de índice.

Perguntas frequentes

Enumerate() modifica a lista original?

Não, enumerate() retorna um objeto iterador lento e deixa a lista original totalmente inalterada.

Posso usar enumerate() com um dicionário?

Sim, mas iterar diretamente em um dicionário produzirá suas chaves. Para iterar o valor-chave do índice, use: for i, (k, v) in enumerate(my_dict.items()):.

Tópicos Relacionados

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.