Maison >développement back-end >Tutoriel Python >Comment fonctionne la fonction `enumerate()` de Python et comment peut-elle être personnalisée ?

Comment fonctionne la fonction `enumerate()` de Python et comment peut-elle être personnalisée ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-07 22:22:14524parcourir

How Does Python's `enumerate()` Function Work and How Can It Be Customized?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn