Link Search Menu Expand Document

Enumerate en Python

El uso del for en Python nos permite iterar colecciones, recorriendo todos los elementos de la misma.

lista = ["A", "B", "C"]

for l in lista:
    print(l)

# Salida:
# A
# B
# C

Sin embargo, existen situaciones en las que no solo queremos acceder al elemento i-ésimo de la colección, sino que además queremos el índice. Una forma de hacerlo sería la siguiente.

lista = ["A", "B", "C"]

indice = 0
for l in lista:
    print(indice, l)
    indice += 1

# Salida:
# 0 A
# 1 B
# 2 C

Aunque se trata de una forma perfectamente válida, no es demasiado pythónica, y es precisamente donde entra en juego el enumerate(). Su uso nos permite ahorrar alguna que otra línea de código, obteniendo un resultado mucho más limpio y claro.

lista = ["A", "B", "C"]

for indice, l in enumerate(lista):
    print(indice, l)

# Salida:
# 0 A
# 1 B
# 2 C

Por último, es importante notar que su uso no se limita únicamente a bucles for. Podemos convertir el tipo enumerate en una lista de tuplas, donde cada una contiene un elemento de la colección inicial y el índice asociado.

lista = ["A", "B", "C"]

en = list(enumerate(lista))
print(en)

# Salida;
# [(0, 'A'), (1, 'B'), (2, 'C')]

Por lo tanto recuerda, la próxima vez que quieras acceder a los índices de una colección, piensa si tal vez enumerate puede resolver tu problema de manera más clara y con menos código.