En utilisant la fonction enumerate() de Python, vous pouvez obtenir le numéro d'index (count, order) ainsi que les éléments d'un objet itérable tel qu'une liste ou un tuple dans une boucle for.
Cet article explique les bases de la fonction enumerate().
- Fonction pour obtenir l'index dans une boucle for:
enumerate()
- Boucle normale
- Pour la boucle utilisant la fonction enumerate()
- Commencer l'index de la fonction enumerate() à 1 (une valeur non nulle)
- Spécifier l'incrément (étape)
La fonction enumerate() peut être utilisée pour obtenir l'index dans une boucle for.
Boucle normale
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
Pour la boucle utilisant la fonction enumerate()
Spécifiez un objet itérable tel qu'une liste comme argument de la fonction enumerate().
Vous pouvez obtenir le numéro d'index et l'élément dans cet ordre.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Commencer l'index de la fonction enumerate() à 1 (une valeur non nulle)
Comme le montre l'exemple ci-dessus, par défaut, l'index de la fonction enumerate() commence à 0.
Si vous voulez commencer par un nombre autre que 0, spécifiez un nombre de départ arbitraire comme deuxième argument de la fonction enumerate().
Pour repartir de zéro, procédez comme suit.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Bien sûr, vous pouvez commencer par d'autres chiffres.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Utile lorsque vous voulez créer une chaîne de caractères numérotée séquentiellement ; il est plus intelligent de spécifier le numéro de départ comme deuxième argument de la fonction enumerate() que d'utiliser 'i+1' pour commencer à partir de 1.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
Voir l'article suivant pour plus d'informations sur la fonction format, qui est utilisée pour remplir les nombres avec des zéros.
- Articles connexes :Sortie de zéros remplis, de nombres hexadécimaux, etc. avec la fonction format() de Python
Spécifier l'incrément (étape)
Il n'y a pas d'argument pour spécifier l'étape incrémentale dans la fonction enumerate(), mais cela peut être réalisé en faisant ce qui suit
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie