Cómo utilizar Enumerar en Python (bucle con índices)

Aprenda a utilizar la función enumerate() en Python. Obtenga tanto el índice como el valor al recorrer listas con ejemplos limpios.

Pruebe esta solución en el Editor

Descripción general

Al iterar sobre una lista, tupla o cadena, a menudo necesitarás realizar un seguimiento del índice actual de cada elemento junto con el elemento en sí. Un patrón común para principiantes es usar una variable de contador separada que se incrementa manualmente, o usar `range(len(my_list))` para iterar a través de índices. Sin embargo, Python proporciona una solución mucho más elegante, pitónica e integrada: la función `enumerate()`.

La función `enumerate()` toma cualquier iterable como argumento y devuelve un objeto de enumeración, que produce pares de tuplas de valor de índice. Al utilizar el descomprimido de tuplas en un bucle "for", puede extraer el índice y el elemento simultáneamente. Esto elimina por completo la necesidad de variables de contador manuales y corchetes de indexación, lo que hace que su código sea significativamente más limpio y menos propenso a errores uno por uno.

De forma predeterminada, `enumerate()` comienza a contar índices desde `0`. Sin embargo, puede pasar un índice inicial personalizado utilizando el argumento de palabra clave `start` opcional (por ejemplo, `enumerate(items, start=1)`). Esto es increíblemente útil cuando se muestran números de lista a usuarios humanos, ya que la gente normalmente espera que las listas comiencen a contar desde 1 en lugar de 0.

Código y salida de ejecución

Este script demuestra la iteración sobre listas usando enumerate para obtener pares de elementos de índice, comenzando desde 0 y 1.

use_enumerate.py
Pruébelo en el 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}")
Salida terminal
--- Standard Enumeration ---
Index 0: apple
Index 1: banana
Index 2: cherry

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

Implementación paso a paso

  • Pase su lista (o cualquier iterable) a la función enumerate() incorporada.
  • Desempaquete las tuplas devueltas en un bucle for usando la sintaxis de índice, valor en enumerar (lista).
  • Proporcione el parámetro de inicio (por ejemplo, inicio = 1) para modificar el valor del contador de índice inicial.

Preguntas frecuentes

¿Enumerar() modifica la lista original?

No, enumerate() devuelve un objeto iterador diferido y deja la lista original sin modificar.

¿Puedo usar enumerate() con un diccionario?

Sí, pero al iterar directamente sobre un diccionario se obtendrán sus claves. Para iterar índice-clave-valor, utilice: para i, (k, v) en enumerate(my_dict.items()):.

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.