Maison >développement back-end >Tutoriel Python >Comment la fonction `enumerate()` de Python améliore-t-elle la traversée itérable ?
En Python, la fonction enumerate() est un joyau énigmatique qui ajoute une touche d'illumination à vos explorations itérables. Ça fait quoi exactement ? Examinons son concept et ses applications.
À la base, enumerate() est un embellisseur itératif. Il introduit un compteur dans un itérable, transformant chaque élément en un tuple contenant le compteur et l'élément. Cette amélioration fournit un moyen clair et concis de surveiller votre parcours à travers l'itérable, offrant une dimension numérique à vos aventures en boucle.
Considérez cet exemple simple :
elements = ('foo', 'bar', 'baz') for elem in elements: print(elem)
Ce code imprimera chaque élément du tuple dans l'ordre :
foo bar baz
Cependant, si nous invoquons la fonction enumerate(), notre boucle prend un nouveau form :
elements = ('foo', 'bar', 'baz') for count, elem in enumerate(elements): print(count, elem)
Maintenant, la sortie révèle non seulement les éléments eux-mêmes mais également leurs compteurs correspondants :
0 foo 1 bar 2 baz
Remarquez comment chaque tuple se décompresse en deux variables : row_number (le compteur) et la ligne (l'élément).
Par défaut, enumerate() commence son comptage à partir de 0. Cependant, vous avez la possibilité de spécifier un nombre de départ en fournissant un deuxième argument entier. Par exemple :
for count, elem in enumerate(elements, 42): print(count, elem)
Ce code s'imprimera :
42 foo 43 bar 44 baz
La fonction innée enumerate() de Python est une machine finement réglée, mais si vous vous sentez aventureux, vous pouvez re -implémentez-le en utilisant itertools.count() ou un générateur de comptage manuel function :
from itertools import count def enumerate(it, start=0): return zip(count(start), it)
ou
def enumerate(it, start=0): count = start for elem in it: yield (count, elem) count += 1
Ces implémentations personnalisées reflètent l'approche de Python, fournissant un outil polyvalent pour vos efforts de bouclage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!