Cet article expliquera l'utilisation de la fonction «énumérer» disponible dans la bibliothèque de modules standard de Python. La fonction d'énumération vous permet d'attribuer un «index» ou un «compter» aux éléments de n'importe quel objet itérable. Vous pouvez ensuite implémenter une logique supplémentaire sur eux car vous aurez accès aux deux valeurs et à un comptage mappé.
Syntaxe et exemple de base
Si vous avez utilisé une boucle «pour» dans d'autres langages de programmation, en particulier le langage «C» et d'autres langues ayant une syntaxe de style «C», vous pouvez avoir spécifié un index de départ dans la boucle. Pour référence, voici à quoi ressemble une boucle «pour» dans «C» et d'autres langues ayant une syntaxe similaire:
pour (int i = 0; i < 10; i++)L'instruction LOOP initialise une variable ayant une valeur de zéro, vérifie qu'il est inférieur à un seuil et l'incrémente d'un seul nombre après avoir évalué la logique à l'intérieur du bloc de boucle (si la condition d'arrêt est remplie). De cette façon, vous pouvez utiliser un index et l'attribuer à tous les objets référencés dans votre bloc de boucle. En comparaison, voici à quoi ressemble une boucle pour le même résultat dans Python:
pour i à portée (0, 10):La fonction «plage» dans Python vous permet de spécifier une séquence de plage de nombres qui a une étape par défaut de 1. Vous pouvez modifier la valeur de pas en fournissant un troisième argument. Le deuxième argument de la fonction «Range» est utilisé pour définir le seuil pour l'état. Les deux échantillons de code produisent la sortie suivante:
0Ces boucles fonctionnent bien si vous voulez simplement générer une certaine séquence de nombres et les associer à une logique à l'intérieur de l'instruction LOOP. Cependant, vous devrez peut-être utiliser une autre boucle imbriquée ou utiliser la fonction «rendement» sur n'importe quel type itérable pour leur attribuer une sorte de compte traçable. La méthode «énumération» facilite l'attribution d'index à iterables dans une instruction, éliminant ainsi le besoin d'exécuter plusieurs boucles imbriquées. Jetez un œil à cet exemple de code:
nombres = ["zéro", "un", "deux", "trois", "quatre", "cinq"]La première instruction définit une nouvelle variable appelée «nombres» et y attribue un itérable (type de liste). La deuxième déclaration montre l'utilisation de la fonction «énumérer» où vous lui fournissez un argument obligatoire comme un argument obligatoire. La troisième instruction convertit la variable «énuméré_nulle» en un objet de type liste. Par défaut, la fonction «énumérer» génère un objet de type «énumérer» et non un type itérable, vous devez donc le convertir. Après avoir exécuté l'échantillon de code mentionné ci-dessus, vous devez obtenir la sortie suivante:
[(0, «zéro»), (1, «un»), (2, «deux»), (3, «trois»), (4, «quatre»), (5, «cinq»)]La fonction «énumérer» attribue un décompte à chaque élément d'un type itérable et crée des tuples ayant des valeurs appariées. Par défaut, le nombre commence à partir de zéro.
Maintenant que vous avez attribué un numéro à chaque élément d'un type itérable, vous pouvez facilement le boucle sans écrire des instructions imbriquées:
nombres = ["zéro", "un", "deux", "trois", "quatre", "cinq"]L'échantillon de code spécifié ci-dessus produira la sortie suivante:
0 zéroVous pouvez rendre le code plus court en utilisant la fonction «énumérer» en ligne, comme indiqué dans l'échantillon ci-dessous:
nombres = ["zéro", "un", "deux", "trois", "quatre", "cinq"]Utilisation d'énumération avec un index de départ différent
La fonction «énumérer» prend un argument facultatif où vous pouvez spécifier un index de départ. Par défaut, il est nul, mais vous pouvez le modifier en utilisant l'argument «Démarrer»:
nombres = ["un", "deux", "trois", "quatre", "cinq"]Dans la deuxième déclaration, l'argument «start = 1» est utilisé pour modifier le point de départ. Après avoir exécuté l'échantillon de code spécifié ci-dessus, vous devez obtenir la sortie suivante:
1 unAttribution d'index avec des étapes
Dans la première section de cet article, la syntaxe pour la boucle «pour» dans le langage «C» est montrée où vous pouvez définir des étapes entre chaque décompte ou index ultérieur. La fonction «énumérer» dans Python n'a pas un tel argument disponible, vous ne pouvez donc pas spécifier une étape entre les comptes. Vous pouvez en effet écrire votre propre logique pour implémenter des étapes dans le bloc de boucle énuméré «For». Cependant, il existe un moyen d'implémenter des étapes personnalisées en écrivant un code minimal. L'exemple suivant montre l'implémentation des étapes à l'aide des fonctions «zip» et «plage»:
nombres = ["zéro", "deux", "quatre", "six"]La fonction «zip» vous permet de créer des paires en ramassant des éléments ayant le même index à partir de deux ou plusieurs iterables. Ainsi, la fonction «Zip» ramasse ici un élément de la fonction itérable retournée de la fonction «Range (0, 7, 2)» et un autre élément de la liste des «nombres», puis les associe tous les deux dans un tuple. Le résultat final est une implémentation identique à la fonction «énumérer» mais avec des étapes personnalisées spécifiées comme un troisième argument dans la fonction «Range (0, 7, 2)» (2 dans ce cas). Après avoir exécuté l'échantillon de code spécifié ci-dessus, vous devez obtenir la sortie suivante:
0 zéroConclusion
La fonction «énumérer» dans Python vous permet d'écrire du code concis en attribuant une séquence de nombres aux éléments dans un objet itérable. Ceci est vraiment utile si vous voulez garder une trace de l'index des éléments à l'intérieur d'un type itérable. Si vous souhaitez «énumérer» des types itérables avec des étapes personnalisées, utilisez la fonction «zip» expliquée dans le dernier exemple.