Utilitzant la funció enumerate() de Python, podeu obtenir el número d’índex (recompte, ordre) així com els elements d’un objecte iterable com una llista o una tupla en un bucle for.
Aquest article explica els conceptes bàsics de la funció enumerate().
- Funció per obtenir l’índex en un bucle for:
enumerate()
- Normal per bucle
- Bucle For utilitzant la funció enumerate().
- Inicieu l’índex de la funció enumerate() a 1 (un valor diferent de zero)
- Especifiqueu l’increment (pas)
La funció enumerate() es pot utilitzar per obtenir l’índex en un bucle for.
Normal per bucle
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
Bucle For utilitzant la funció enumerate().
Especifiqueu un objecte iterable com una llista com a argument de la funció enumerate().
Podeu obtenir el número d’índex i l’element en aquest ordre.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Inicieu l’índex de la funció enumerate() a 1 (un valor diferent de zero)
Com es mostra a l’exemple anterior, per defecte, l’índex de la funció enumerate() comença des de 0.
Si voleu començar amb un nombre diferent del 0, especifiqueu un número inicial arbitrari com a segon argument de la funció enumerate().
Per començar des de zero, feu el següent.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Per descomptat, podeu començar amb altres números.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Útil quan es vol crear una cadena numerada seqüencialment; és més intel·ligent especificar el número inicial com a segon argument de la funció enumerate() que utilitzar ‘i+1’ per començar des de l’1.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
Consulteu l’article següent per obtenir més informació sobre la funció de format, que s’utilitza per omplir nombres amb zeros.
- Articles relacionats:Emissió de zeros emplenats, nombres hexadecimals, etc. amb la funció format() de Python
Especifiqueu l’increment (pas)
No hi ha cap argument per especificar el pas incremental a la funció enumerate(), però es pot aconseguir fent el següent
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie