Python, usando a función enumerate(): obtención dos elementos e índices dunha lista

Negocios

Usando a función enumerate() de Python, podes obter o número de índice (conto, orde) así como os elementos dun obxecto iterable como unha lista ou tupla nun bucle for.

Este artigo explica os conceptos básicos da función enumerate().

  • Función para obter o índice nun bucle for:enumerate()
    • Normal para bucle
    • Bucle For usando a función enumerate().
  • Inicia o índice da función enumerate() en 1 (un valor distinto de cero)
  • Especifique o incremento (paso)

A función enumerate() pódese usar para obter o índice nun bucle for.

Normal para bucle

l = ['Alice', 'Bob', 'Charlie']

for name in l:
    print(name)
# Alice
# Bob
# Charlie

Bucle For usando a función enumerate().

Especifique un obxecto iterable como unha lista como argumento da función enumerate().

Podes obter o número de índice e o elemento nesa orde.

for i, name in enumerate(l):
    print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie

Inicia o índice da función enumerate() en 1 (un valor distinto de cero)

Como se mostra no exemplo anterior, por defecto, o índice da función enumerate() comeza a partir de 0.

Se quere comezar cun número distinto de 0, especifique un número inicial arbitrario como segundo argumento da función enumerate().

Para comezar de cero, fai o seguinte.

for i, name in enumerate(l, 1):
    print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie

Por suposto, podes comezar con outros números.

for i, name in enumerate(l, 42):
    print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie

Útil cando quere crear unha cadea numerada secuencialmente; é máis intelixente especificar o número inicial como segundo argumento da función enumerate() que usar ‘i+1’ para comezar desde 1.

for i, name in enumerate(l, 1):
    print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie

Consulte o seguinte artigo para obter máis información sobre a función de formato, que se usa para encher números con ceros.

Especifique o incremento (paso)

Non hai ningún argumento para especificar o paso incremental na función enumerate(), pero pódese conseguir facendo o seguinte

step = 3
for i, name in enumerate(l):
    print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie
Copied title and URL