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.