Comment utiliser Enumerate en Python (boucle avec des indices)

Apprenez à utiliser la fonction enumerate() en Python. Obtenez à la fois l’index et la valeur lorsque vous parcourez des listes avec des exemples clairs.

Essayez cette solution dans l'éditeur

Aperçu

Lors d'une itération sur une liste, un tuple ou une chaîne, vous devrez souvent suivre l'index actuel de chaque élément à côté de l'élément lui-même. Un modèle courant pour les débutants consiste à utiliser une variable de compteur distincte qui est incrémentée manuellement, ou à utiliser `range(len(my_list))` pour parcourir les indices. Cependant, Python fournit une solution beaucoup plus élégante, pythonique et intégrée : la fonction `enumerate()`.

La fonction `enumerate()` prend n'importe quel itérable comme argument et renvoie un objet enumerate, qui produit des paires de tuples de valeur d'index. En utilisant le déballage de tuple dans une boucle « for », vous pouvez extraire l'index et l'élément simultanément. Cela supprime complètement le besoin de variables de compteur manuelles et de crochets d'indexation, ce qui rend votre code beaucoup plus propre et moins sujet aux erreurs ponctuelles.

Par défaut, `enumerate()` commence à compter les indices à partir de `0`. Cependant, vous pouvez transmettre un index de départ personnalisé en utilisant l'argument de mot-clé facultatif `start` (par exemple, `enumerate(items, start=1)`). Ceci est incroyablement utile lors de l'affichage des numéros de liste aux utilisateurs humains, car les gens s'attendent généralement à ce que les listes commencent à compter à partir de 1 au lieu de 0.

Sortie de code et d'exécution

Ce script montre l'itération sur des listes à l'aide d'enumerate pour obtenir des paires d'éléments d'index, en commençant par 0 et 1.

use_enumerate.py
Essayez dans l'éditeur
fruits = ["apple", "banana", "cherry"]

# 1. Standard enumeration (starts at 0)
print("--- Standard Enumeration ---")
for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")

# 2. Enumeration starting at a custom index (e.g., 1)
print("\n--- Starting at 1 ---")
for num, fruit in enumerate(fruits, start=1):
    print(f"Item #{num}: {fruit}")
Sortie terminale
--- Standard Enumeration ---
Index 0: apple
Index 1: banana
Index 2: cherry

--- Starting at 1 ---
Item #1: apple
Item #2: banana
Item #3: cherry

Mise en œuvre étape par étape

  • Transmettez votre liste (ou tout autre itérable) à la fonction enumerate() intégrée.
  • Décompressez les tuples renvoyés dans une boucle for en utilisant la syntaxe for index, value in enumerate(list).
  • Fournissez le paramètre de démarrage (par exemple, start=1) pour modifier la valeur initiale du compteur d'index.

Foire aux questions

Enumerate() modifie-t-il la liste d'origine ?

Non, enumerate() renvoie un objet itérateur paresseux et laisse la liste d'origine entièrement inchangée.

Puis-je utiliser enumerate() avec un dictionnaire ?

Oui, mais parcourir directement un dictionnaire donnera ses clés. Pour itérer la valeur-clé d'index, utilisez : for i, (k, v) in enumerate(my_dict.items()):.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.