Maison >développement back-end >Tutoriel Python >Comment fonctionne la fonction `enumerate()` de Python et comment peut-elle être personnalisée ?
Comprendre Enumerate en Python
La fonction enumerate() de Python améliore un itérable en ajoutant un compteur numérique à chaque élément . Explorons ce que cela signifie dans le contexte spécifique donné :
for row_number, row in enumerate(cursor):
Le curseur ici est un itérable contenant une séquence d'éléments. Pour chaque élément, enumerate() génère un tuple avec un compteur (row_number) et l'élément lui-même (row). La boucle for attribue ensuite ces tuples aux variables row_number et row, respectivement.
Ce que fait vraiment Enumerate
En termes simples, enumerate() ajoute un décompte courant aux éléments de l'itérable. Dans le code donné, il démarre le décompte à partir de 0 et l'incrémente de 1 pour chaque élément suivant. Cela vous permet de parcourir l'itérable et d'avoir accès simultanément au nombre et à l'élément.
Démonstration
Considérez l'exemple suivant :
elements = ('foo', 'bar', 'baz') for elem in elements: print(elem)
Sortie :
foo bar baz
Maintenant, employons enumerate():
for count, elem in enumerate(elements): print(count, elem)
Sortie :
0 foo 1 bar 2 baz
Dans ce cas, nous obtenons à la fois l'index (count) et l'élément correspondant (elem).
Personnalisation et implémentations
Par défaut, enumerate() commence à compter à partir de 0. Cependant, vous pouvez fournir un deuxième argument facultatif pour commencer à partir d'un nombre différent. Par exemple :
for count, elem in enumerate(elements, 42): print(count, elem)
Sortie :
42 foo 43 bar 44 baz
Vous pouvez également créer vos propres versions de enumerate() à l'aide de constructions Python natives ou de bibliothèques tierces. Par exemple :
def enumerate(it, start=0): return zip(count(start), it) # Using itertools.count()
Ou :
def enumerate(it, start=0): count = start for elem in it: yield count, elem count += 1
Ces implémentations personnalisées démontrent la flexibilité des paradigmes de programmation de Python.
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!