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.
- Artigos relacionados:Saíndo ceros, números hexadecimais, etc. coa función format() de Python
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