Python Enumerate : une explication avec des exemples

Python Enumerate : une explication avec des exemples

Travailler avec des listes et d'autres objets itérables est une tâche courante dans la programmation Python . Parfois, vous devrez peut-être parcourir ces itérables tout en gardant une trace de l'index ou du nombre de l'élément actuel. C'est là que la fonction intégrée enumerate() de Python vient à la rescousse.

La fonction enumerate() de Python vous offre un moyen pratique d'accéder à la fois à l'index d'un élément et à l'élément lui-même lorsque vous parcourez une liste ou tout objet itérable.

Python Enumerate : une explication avec des exemples

Cette fonction rend votre code plus Pythonic , lisible et efficace. Il vous permet de parcourir les éléments et de récupérer à la fois leur index et leur valeur. Au lieu d'initialiser et d'incrémenter manuellement un compteur dans la boucle, vous pouvez compter sur enumerate() pour faire le travail à votre place.

Dans cet article, vous découvrirez la fonction intégrée enumerate() de Python, son importance dans votre code Python et ses cas d'utilisation.

Allons-y !

Table des matières

Qu'est-ce que la fonction d'énumération Python ?

Imaginez que vous travaillez avec une structure de données de liste et que vous voulez faire quelque chose avec chaque élément, mais vous devez également connaître la position de l'élément dans la liste.

Sans Python enumerate(), vous pouvez décider d'utiliser une variable de compteur que vous incrémentez à chaque itération de boucle. Mais cette approche pourrait être sujette à des erreurs et ce n'est pas très "Pythonic".

Enumerate est une fonction intégrée à Python qui vous permet d'itérer sur des objets itérables tout en gardant une trace de l'index de l'élément actuel.

Maintenant que vous avez compris ce qu'est la fonction enumerate() en Python, passons à la syntaxe de la fonction Python enumerate() dans la section suivante !

Quelle est la syntaxe de la fonction Python Enumerate ?

La syntaxe d'une fonction définit comment vous devez utiliser cette fonction dans votre code, y compris les arguments qu'elle prend et ce qu'elle renvoie.

Python Enumerate : une explication avec des exemples

La fonction enumerate() prend la syntaxe suivante :

enumerate(, start=0)
  • : Il s'agit d'un paramètre obligatoire et il peut s'agir de n'importe quel itérable Python, tel qu'une liste ou un tuple.

  • start : Ce deuxième paramètre est un paramètre facultatif qui spécifie la valeur de départ du compteur. Par défaut, il est défini sur 0.

La valeur de retour de la fonction enumerate() est un objet d'énumération, qui est un itérateur ayant des paires de (index, élément) pour chaque élément dans l'itérable donné.

Vous pouvez utiliser cet itérateur dans une boucle for pour accéder simultanément à l'index et à l'élément.

L'exemple suivant montre comment utiliser la fonction enumerate() avec une liste :

fruits = ['apple', 'banana', 'cherry']

for index, item in enumerate(fruits):
    print(index, item)

Dans cet exemple, enumerate() parcourt les objets d'énumération, c'est-à-dire la liste de fruits , et attribue un index à chaque élément, en commençant par 0.

La boucle for décompresse ensuite l'index et l'élément de l'objet énuméré. Cela vous permet d'effectuer des opérations basées à la fois sur l'index et sur la valeur de l'élément.

Nous utilisons la fonction d'impression pour imprimer l'index et l'élément à l'écran. La sortie du code est donnée dans l'image ci-dessous :

Python Enumerate : une explication avec des exemples

Dans la sortie, vous pouvez voir que l'index de départ est 0. Il s'agit de la valeur par défaut de l'index attribué automatiquement par l'interpréteur Python.

Cependant, vous pouvez également spécifier une valeur de départ différente pour le compteur en fournissant le paramètre de démarrage facultatif , comme indiqué dans le code ci-dessous :

for index, item in enumerate(fruits, start=1):
    print(index, item)

La sortie sera similaire à celle ci-dessus. La seule différence sera que l'indice commence maintenant à 1.

Python Enumerate : une explication avec des exemples

Vous maîtrisez maintenant la syntaxe de la fonction enumerate() en Python. Mais, comme pour tout outil, il est important de savoir quand et où l'utiliser.

C'est pourquoi nous allons explorer quelques cas d'utilisation courants de la fonction enumerate() dans la section suivante !

5 cas d'utilisation de la fonction Python Enumerate

La fonction enumerate en Python est largement utilisée dans les scénarios où l'index et la valeur d'un objet itérable sont importants pour le programmeur.

Nous avons répertorié ci-dessous certains des cas d'utilisation courants des fonctions d'énumération en Python.

1. Comment utiliser Enumerate avec des listes Python

En Python, une liste est une structure de données intégrée qui vous permet de stocker plusieurs éléments dans une seule variable. Considérez une liste comme un conteneur dans lequel vous pouvez placer différents éléments et conserver leur ordre.

La fonction enumerate() peut être utilisée sur des listes de différentes manières, telles que :

A. Accéder aux éléments de liste et à leurs indices avec Python Enumerate

L'un des cas d'utilisation les plus courants pour enumerate() est lorsque vous devez accéder à la fois aux éléments d'une liste et à leurs index. Enumerate vous permet de le faire de manière propre et efficace.

Voici un exemple d'accès aux éléments d'une liste et à leurs index :

fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
for index, fruit in enumerate(fruits):
    print(f"At index {index}, the fruit is {fruit}.")

La sortie de ce code est donnée dans l'image ci-dessous :

Python Enumerate : une explication avec des exemples

B. Modification des éléments de liste avec Python Enumerate

Lorsque vous avez besoin de modifier les éléments d'une liste en fonction de leur index, enumerate() est un excellent outil. Vous pouvez accéder à l'index dans la boucle et l'utiliser pour modifier la liste.

Voici un exemple de modification d'éléments de liste avec la fonction enumerate :

numbers = [1, 2, 3, 4, 5]

for i, num in enumerate(numbers):
    numbers[i] = num * 2

Ce code Python crée une liste de nombres de 1 à 5. Ensuite, il utilise une boucle for et la fonction enumerate() pour parcourir la liste.

A chaque itération, il multiplie le nombre courant (num) par 2 et le réaffecte à la même position dans la liste (numbers[i]).

Le résultat est que chaque numéro de la liste d'origine est doublé, comme indiqué dans l'image ci-dessous :

Python Enumerate : une explication avec des exemples

C. Comparer des éléments dans deux listes avec Python Enumerate

Si vous comparez des éléments dans deux listes différentes, enumerate() peut fournir l'index dont vous avez besoin pour accéder aux éléments des deux listes en même temps.

Voici un exemple d'utilisation de la fonction enumerate pour comparer des éléments dans deux listes :

list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 0, 5]
for i, value in enumerate(list1):
    if value != list2[i]:
        print(f"Difference at index {i}: {value} (list1) vs {list2[i]} (list2)")

Dans ce code, nous définissons d'abord deux listes, list1 et list2. Ensuite, nous parcourons list1 en utilisant une boucle for avec enumerate(), qui fournit l'index (i) et la valeur de chaque élément.

Si l'élément actuel de la liste1 ne correspond pas à l'élément correspondant de la liste2, il imprime l'index de la différence et les valeurs différentes des deux listes.

Le résultat de ce code est affiché ci-dessous :

Python Enumerate : une explication avec des exemples

2. Comment utiliser Enumerate avec Python Tuples

Un tuple en Python est une collection ordonnée d'éléments, semblable à une liste. La seule différence est qu'un tuple est immuable, ce qui signifie que vous ne pouvez pas modifier son contenu après sa création.

Voici quelques-uns des cas où vous pouvez utiliser enumerate avec des tuples Python.

A. Utilisation de Python Enumerate() pour trouver un élément dans un tuple

Lorsque vous traitez avec des tuples en Python, vous devrez souvent rechercher si un élément existe dans un tuple.

L'exemple de code suivant illustre l'utilisation d'enumerate pour rechercher des éléments dans un tuple :

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
for i, fruit in enumerate(fruits):
    if fruit == 'mango':
        print(f"'mango' found at position {i}")

Ce code imprimera "'mango' trouvé en position 2" car 'mango' est à l'index 2 dans le tuple.

Python Enumerate : une explication avec des exemples

B. Utilisation de Python Enumerate() pour créer un dictionnaire à partir d'un tuple

Si vous avez un tuple et que vous devez le transformer en dictionnaire, la fonction enumerate() de Python peut être votre outil de choix.

L'exemple de code montre comment vous pouvez créer un dictionnaire à partir d'un tuple en utilisant enumerate :

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')

fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)

Ce code imprimera un dictionnaire où les clés sont les indices et les valeurs sont les éléments du tuple.

Python Enumerate : une explication avec des exemples

3. Comment utiliser Enumerate avec les dictionnaires Python

En Python, un dictionnaire est une collection mutable et non ordonnée de paires clé-valeur , où chaque clé doit être unique. Considérez-le comme un dictionnaire réel : vous recherchez un mot (la clé) et obtenez sa définition (la valeur).

Voici quelques-uns des cas où vous pouvez utiliser enumerate avec des dictionnaires Python :

A. Boucle sur les clés et les valeurs d'un dictionnaire

Vous pouvez utiliser la fonction enumerate() pour parcourir les clés et les valeurs d'un dictionnaire.

La fonction enumerate() ajoute un compteur à un objet itérable (comme les dictionnaires), vous permettant d'accéder à la valeur d'index actuelle.

Un exemple de fonction énumérer avec le dictionnaire Python est donné ci-dessous :

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, k in enumerate(example_dict):
    print(i, k)

Dans ce code Python, nous créons d'abord un dictionnaire appelé example_dict. Ensuite, nous utilisons la fonction enumerate() pour parcourir le dictionnaire.

Pour chaque itération, nous imprimons le nombre de boucles (qui est donné par i et commence à 0) et la clé actuelle (qui est k) du dictionnaire.

Python Enumerate : une explication avec des exemples

B. Combinaison de Python Enumerate avec la fonction Items

Vous pouvez également accéder aux clés et aux valeurs d'un dictionnaire via la fonction items() avec enumerate() . La fonction items() renvoie une collection itérable de paires clé-valeur sous forme de tuples.

L'exemple ci-dessous montre comment vous pouvez utiliser la fonction items() avec enumerate() :

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, (k, v) in enumerate(example_dict.items()):
    print(i, k, v)

Dans ce code, nous créons un dictionnaire nommé example_dict , puis nous utilisons la fonction enumerate() pour parcourir les paires clé-valeur du dictionnaire. Lors de chaque itération, nous imprimons l'indice de boucle 'i', la clé courante 'k' et sa valeur correspondante 'v'.

Python Enumerate : une explication avec des exemples

Vous avez maintenant une solide compréhension de l'utilisation de la fonction enumerate() de Python dans certains scénarios courants. Mais enumerate() a encore plus à offrir.

Plongeons-nous dans quelques cas d'utilisation avancés entourant enumerate() dans la section suivante !

3 cas d'utilisation avancés de Python Enumerate

Dans cette section, nous allons aller au-delà des bases et explorer certains des cas d'utilisation avancés de la fonction enumerate en Python.

Nous couvrirons les cas d'utilisation suivants :

  1. Utiliser Enumerate avec les classes Python

  2. Utiliser Enumerate avec les classes Enum

  3. Utilisation de l'énumération pour l'inversion de commande

Allons-y !

1. Utiliser Enumerate avec les classes Python

Dans votre parcours de programmation Python, vous pouvez rencontrer des situations dans lesquelles vous souhaitez utiliser enumerate avec des classes personnalisées.

Pour ce faire, votre classe doit implémenter la méthode iter() , qui lui permet d'être itérable.

Considérez une classe Color qui stocke les noms de couleurs et leurs valeurs hexadécimales associées :

class Color:
    def __init__(self, colors: dict):
        self.colors = colors

    def __iter__(self):
        return iter(self.colors.items())

colors = Color({"red": "#FF0000", "green": "#00FF00", "blue": "#0000FF"})

for index, (name, hex_value) in enumerate(colors):
    print(f"{index}: {name} => {hex_value}")

Dans ce code, nous créons une classe Color qui prend un dictionnaire de noms de couleurs et leurs valeurs hexadécimales correspondantes.

Lorsque vous utilisez enumerate() dans la boucle, il fournit l'index avec chaque paire clé-valeur. Cela vous permet d'imprimer l'index, le nom de la couleur et sa valeur hexadécimale dans une chaîne formatée.

Python Enumerate : une explication avec des exemples

2. Utilisation de Python Enumerate avec les classes Enum

Python est livré avec une classe Enum intégrée , qui vous permet de créer des types d'énumération avec des valeurs entières attribuées automatiquement.

Par exemple, regardez le code suivant :

from enum import Enum, auto

class Direction(Enum):
    NORTH = auto()
    EAST = auto()
    SOUTH = auto()
    WEST = auto()

for index, direction in enumerate(Direction):
    print(f"{index}: {direction.name} => {direction.value}")

Dans ce script, nous définissons une direction d'énumération avec quatre membres (NORTH, EAST, SOUTH et WEST) à l'aide du module enum de Python. La fonction auto() attribue une valeur automatique à chaque membre.

Lorsque vous utilisez enumerate() dans la boucle, il fournit un index avec chaque membre de l'énumération. Cela vous permet d'imprimer l'index, le nom du membre et sa valeur attribuée automatiquement dans une chaîne formatée.

La sortie de ce code est donnée dans l'image ci-dessous :

Python Enumerate : une explication avec des exemples

3. Utilisation de Python Enumerate pour l'inversion de commande

Dans certains cas, vous souhaiterez peut-être énumérer les éléments dans l'ordre inverse. Vous pouvez y parvenir en utilisant la fonction intégrée reversed() en combinaison avec enumerate() .

L'exemple suivant illustre l'énumération des éléments dans l'ordre inverse :

my_list = ["apple", "banana", "cherry"]

for index, item in enumerate(reversed(my_list)):
    print(f"{index}: {item}")

Dans ce code, nous itérons sur une version inversée de my_list en utilisant enumerate(). Cela vous fournit l'index et l'élément de la liste inversée à chaque itération. Il vous permet d'imprimer l'index et l'élément dans une chaîne formatée.

Python Enumerate : une explication avec des exemples

La fonction reversed() ne modifiera pas la séquence d'origine ; il crée un nouvel itérateur qui présente les éléments dans l'ordre inverse.

Pour en savoir plus sur les fonctions en Python, regardez la vidéo suivante :

Dernières pensées

Au fur et à mesure que vous poursuivez votre voyage Python, la maîtrise de la fonction enumerate() est indispensable. C'est un outil qui améliore la lisibilité et l'efficacité du code.

En utilisant enumerate(), vous pouvez accéder de manière transparente à la fois à l'index et à la valeur dans vos boucles, réduisant ainsi le besoin de contre-variables ou d'indexation. Cela simplifie votre code et le rend plus Pythonic.

Que vous parcouriez des listes, des tuples, des chaînes ou des dictionnaires, enumerate() s'avérera être un outil précieux. En comprenant et en pratiquant avec enumerate(), vous franchirez une étape importante dans le perfectionnement de vos compétences en programmation Python !


Quest-ce que le self en Python ? Exemples concrets

Quest-ce que le self en Python ? Exemples concrets

Qu'est-ce que le self en Python ? Exemples concrets

Comment enregistrer et charger un fichier RDS dans R

Comment enregistrer et charger un fichier RDS dans R

Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.

First N Business Days Revisited - Une solution de langage de codage DAX

First N Business Days Revisited - Une solution de langage de codage DAX

Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.

Introduction au filtrage du contexte dans LuckyTemplates

Introduction au filtrage du contexte dans LuckyTemplates

Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.

Idées de matérialisation pour les caches de données dans DAX Studio

Idées de matérialisation pour les caches de données dans DAX Studio

Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.

Rapports dentreprise à laide de LuckyTemplates

Rapports dentreprise à laide de LuckyTemplates

Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir