Python, Utilisation de la fonction enumerate() : Obtenir les éléments et les indices d’une liste

Affaires

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.

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