Introducción
enumerate()
es una función incorporada en Python que le permite tener un contador automático mientras recorre iterables.
Función de Python enumerate ()
La función enumerate()
toma la siguiente forma:
enumerate(iterable, start=0)
La función acepta dos argumentos:
iterable
: un objeto que admite la iteración.start
: el número en el que comienza el contador. Este argumento es opcional. De forma predeterminada, el contador comienza en 0.
enumerate()
devuelve un objeto enumerado en el que __next__()
(o next()
en Python 2) para obtener una tupla que contiene un recuento y el valor actual del iterable.
Aquí hay un ejemplo de cómo crear una lista de tuplas usando list()
y cómo recorrer un iterable:
directions = ["north", "east", "south", "west"]
list(enumerate(directions))
for index, value in enumerate(directions):
print("{}: {}".format(index, value))
[(0, 'north'), (1, 'east'), (2, 'south'), (3, 'west')]
0: north
1: east
2: south
3: west
Si la indexación de base cero no le funciona, elija otro índice inicial para la enumeración:
directions = ["north", "east", "south", "west"]
list(enumerate(directions, 1))
[(1, 'north'), (2, 'east'), (3, 'south'), (4, 'west')]
La función enumerate()
funciona en cualquier objeto iterable. Un iterable es un contenedor que se puede repetir. En pocas palabras, significa un objeto al que puede pasar un bucle for
La mayoría de los objetos integrados en Python, como cadenas, listas y tuplas, son iterables.
Escribir código Pythonic con enumerate ()
for
es totalmente diferente del bucle for
disponible en muchos lenguajes de programación. El for
en Python es equivalente al foreach
en otros lenguajes.
Una técnica común utilizada por los desarrolladores de Python más nuevos para obtener el índice correspondiente cuando se trata de iterables es usar el range(len(...))
o establecer e incrementar un contador:
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
for i in range(len(planets)):
print("Planet {}: {}".format(i, planets[i]))
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
i = 0
for planet in planets:
print("Planet {}: {}".format(i, planet))
i += 1
Los bucles anteriores se pueden reescribir de manera más idiomática usando enumerate()
:
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
for index, value in enumerate(planets):
print("Planet {}: {}".format(index, value))
Todos los métodos producirán el mismo resultado:
Planet 0: Mercury
Planet 1: Venus
Planet 2: Earth
Planet 3: Mars
Planet 4: Jupiter
Planet 5: Saturn
Planet 6: Uranus
Planet 7: Neptune
Conclusión
En este artículo, le mostramos cómo usar la función enumerate()