Python, utilitzant la funció enumerate(): obtenció dels elements i índexs d’una llista

Negocis

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.

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
Copied title and URL