top of page

Qu’est-ce que la méthode « enumerate() » et comment l’utiliser ?

Updated: Feb 23, 2023

En Python la boucle « for » est généralement utilisée sur des itérables (listes, dictionnaires, chaine de caractères…). Cette boucle est très pratique pour parcourir tous les éléments qui composent cet itérable. Cependant il peut être très utile lorsque l’on veut récupérer la valeur d’un élément et son index par exemple. Vous pouvez utiliser la méthode « enumerate() ».

Prenons l’exemple ci-dessous :


On observe ici que grace à la boucle « for » on peut afficher tous les éléments de la liste « list ».

Mais maintenant mettons que nous souhaitons faire apparaitre la valeur et l’index qui va avec. Alors nous devrions faire le code suivant :


Nous avons ici utilisé les fonctions « range() » et « len() » qui nous permettent d’afficher un index incrémenté à côté de la valeur.

Pour rappel la méthode « range() » permet de générer des séquences d’entiers consécutifs. Elle prend 3 paramètres : « start », « stop », « step ». « Start » pour la valeur de départ, « stop » pour la valeur d’arrivée mais elle ne sera pas incluse car l’index commence à zéro et « step » pour l’incrément. Si la méthode est utilisée avec un seul paramètre, c’est le paramètre stop qui sera utilisé.

La méthode « len » retourne le nombre de caractère d’une chaine.

Dans cet exemple range(len(list)) correspond à ça :


La méthode « enumerate() » est une méthode beaucoup plus simple et très efficace. Regardons ce qu’elle produit lorsqu’on l’utilise :


Cette méthode est beaucoup plus rapide, il y a moins de code à écrire.

Le résultat est un ensemble de tuples.

L’index commence à zéro mais la méthode « enumerate() » possède un paramètre « start= » qui permet de faire commencer l’index plus tard ou plus tôt.

On peut insérer dans une liste cet ensemble de tuples et naviguer très facilement dedans comme dans cet exemple :


On obtient ici une liste de tuples que l’on peut filtrer. Si par exemple on souhaite conserver uniquement les index divisibles par deux et bien nous pourrons faire ce code :


Enfin il est possible de faire un code un peu plus optimisé :


La méthode « enumerate() » fait partie des méthodes à connaitre par le data scientist en plus de celles que l’on trouve dans les librairies Panda ou Numpy. Nos formations Python vous permettront d’approfondir vos connaissances.







Comentarios


bottom of page