Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

Dans le programme Python, les programmeurs utilisent souvent la boucle for pour créer une boucle sur un objet itérable. Cela signifie essentiellement que vous n’aurez pas besoin d’une variable de comptage pour accéder aux éléments à l’intérieur de l’itérable. Dans certains cas, cependant, les programmeurs ont besoin d’une variable capable de changer à chaque itération de la boucle. Au lieu de créer et d’augmenter des variables, on peut toujours utiliser la fonction enumerate () pour obtenir un compteur, ainsi qu’une valeur simultanément.

L’itération en utilisant les boucles présentes en Python

La boucle for de Python utilise l’itération basée sur la collection, ce qui signifie que Python a tendance à affecter un élément aux variables de la boucle ( from iterables ) à chaque itération. Voici un exemple.

Les valeurs dans cet exemple sont une liste qui contient 3 chaînes de caractères, qui se trouvent être les alphabets a, b et c. Dans le programme Python, les listes sont considérées comme une variante des objets itérables. La variable de boucle présente dans la boucle for est value. Il convient également de garder à l’esprit qu’à chaque itération de la boucle, la valeur tend à être fixée vers l’élément suivant et qu’elle provient des valeurs de commande.

Après cela, vous devez commencer à imprimer la valeur à l’écran. L’un des principaux avantages des itérations basées sur les collections est qu’elles évitent les erreurs de type “off by one” que l’on trouve couramment dans de nombreux autres langages de programmation.

Disons qu’en plus de la valeur, vous prévoyez d’imprimer l’index de l’élément à l’écran et à chaque itération. Une façon efficace d’aborder cette tâche serait de créer une variable pour stocker l’indice. Une fois que vous avez fait cela, vous pouvez poursuivre en le mettant à jour à chaque itération, ce qui ressemblera à quelque chose comme ceci :

 

Dans l’exemple mentionné ci-dessus, l’index est essentiellement un entier qui garde la trace de votre position dans la liste. À chaque itération de la boucle, vous imprimerez l’index long avec la valeur. L’étape finale de la boucle vous demandera de mettre à jour le nombre présent dans l’index (assurez-vous de le mettre à jour d’une unité). Vous remarquerez un bug si vous ne mettez pas à jour l’index à chaque itération. Voici à quoi cela pourrait ressembler

Dans l’exemple, vous remarquerez que chaque indice à chaque itération reste à 0, car sa valeur n’a pas été mise à jour par un code à la fin de la boucle. La recherche d’un bogue comme celui-ci peut s’avérer incroyablement difficile, en particulier dans les boucles complexes et longues.

Un moyen efficace de résoudre ce problème consiste à combiner range() et len() pour créer un index. La raison pour laquelle cette tactique est souvent recommandée est qu’elle vous permet de créer des index automatiquement, ce qui vous évite d’avoir à vous souvenir du moment où vous devez effectuer la mise à jour. 

Utiliser enumerate() en Python de la bonne manière

Les programmeurs peuvent utiliser la commande enumerate() à l’intérieur d’une seule boucle, tout comme ils le feraient avec l’objet itérable initial. Plutôt que d’ajouter l’itérable directement après le in présent dans for, vous le placerez dans les parenthèses de la commande enumerate(). En outre, vous devrez apporter de légères modifications à la variable de la boucle. Voici un exemple qui montre à quoi cela ressemblera :

Après avoir tapé enumerate(), vous obtiendrez 2 variables de boucle de la fonction, qui consisteront en le compte de l’itération actuelle ainsi que la valeur de l’élément de l’itération actuelle.

Comme dans une boucle for ordinaire, vous pouvez donner n’importe quel nom aux variables de la boucle. Dans l’exemple ci-dessus, les mots value et count ont été utilisés. Cependant, vous pouvez également les nommer v et i, ou tout autre nom tant qu’il est valide en Python. 

Lorsque vous utilisez la fonction enumerate (), vous ne devez pas vous souvenir du moment où vous accédez à l’élément dans l’itérable. Ce qui est encore mieux, c’est que vous ne devez pas vous souvenir de l’avancement de l’indice présent à la fin de la boucle. Python s’occupe de presque tout automatiquement, ce qui vous évite de devoir vous souvenir de détails essentiels. 

Note importante

L’utilisation des 2 variables de la boucle, qui sont value et count, tout en les séparant par une virgule met en évidence le déballage des arguments. Il s’agit d’une fonctionnalité incroyablement puissante de Python.

L’enumerate() en Python a un argument supplémentaire que les programmeurs peuvent utiliser pour contrôler la valeur de départ du compte. Par défaut, la valeur de départ est zéro, car les séquences Python sont indexées et commencent toutes par 0. En effet, les séquences de Python sont indexées et toutes commencent par 0. En d’autres termes, si vous souhaitez récupérer l’élément initial d’une liste, assurez-vous de choisir l’index 0.

Pratiquer enumerate() en Python de la bonne manière

Les programmeurs peuvent utiliser la fonction enumerate() chaque fois qu’ils veulent utiliser l’élément et le compte dans une boucle. Il convient de garder à l’esprit que l’utilisation de la fonction enumerate() augmente essentiellement le nombre total d’éléments de 1 à chaque itération. Cela dit, cela n’entraîne pas une trop grande inflexibilité. En fait, vous pouvez rester assez flexible car le compte est un entier Python ordinaire, que vous pouvez utiliser de plusieurs façons. 

Le fonctionnement interne de enumerate() en Python

Pour avoir une idée plus claire de la façon dont enumerate() fonctionne réellement, il serait préférable d’implémenter la version que vous avez avec Python. Il y aura deux exigences critiques dans votre version de enumerate(). Les voici :

  • Commence par accepter la valeur de comptage de départ et l’itérable comme arguments
  • Renvoyer un tuple, en s’assurant qu’il contient la valeur actuelle du compte ainsi que l’élément associé à l’itérable.

Dans l’exemple ci-dessus, my_enumerate utilise 2 arguments, start et sequence, avec zéro comme valeur par défaut de start. En ce qui concerne la définition de la fonction, vous devez utiliser n comme valeur pour start tout en exécutant une boucle for sur la séquence. Pour chaque élément présent dans la séquence, assurez-vous de céder le contrôle vers l’emplacement respectif. Après cette étape, renvoyez les valeurs actuelles de elem et n. Enfin, incrémentez la commande n pour préparer l’itération suivante. 

Si vous souhaitez effectuer des énumérations en Python comme un programmeur expert, il est essentiel de connaître les principes de base. Les informations et les exemples mentionnés dans cet article vous donneront une idée claire de la manière de procéder à une énumération correcte.  

Langages

Weekly newsletter

No spam. Just the latest releases and tips, interesting articles, and exclusive interviews in your inbox every week.