Souvent, lorsqu’il s’agit d’itérateurs, nous devons également compter les itérations. Python facilite la tâche des programmeurs en fournissant une fonction intégrée enumerate() pour cette tâche. La méthode enumerate() ajoute un compteur à un itérable et le renvoie sous la forme d'un objet énumérateur. Cet objet énuméré peut ensuite être utilisé directement pour des boucles ou converti en une liste de tuples à l'aide de la fonction list().
Syntaxe: énumérer (itérable, start = 0)
Paramètres:
- Itérable : tout objet prenant en charge l'itération
- Commencer: la valeur de l'index à partir de laquelle le compteur doit être démarré, par défaut il est 0
Retour: Renvoie un itérateur avec des paires d'index et d'éléments de l'itérable d'origine
Exemple
Ici, nous utilisons la fonction enumerate() avec à la fois une liste et une chaîne. Création d'objets d'énumération pour chacun et affichage de leurs types de retour. Il montre également comment modifier l'index de départ pour l'énumération lorsqu'il est appliqué à une chaîne, ce qui entraîne des paires index-élément pour la liste et la chaîne. .
Python3
automates finis déterministes
l1>=> [>'eat'>,>'sleep'>,>'repeat'>]> s1>=> 'geek'> # creating enumerate objects> obj1>=> enumerate>(l1)> obj2>=> enumerate>(s1)> print> (>'Return type:'>,>type>(obj1))> print> (>list>(>enumerate>(l1)))> # changing start index to 2 from 0> print> (>list>(>enumerate>(s1,>2>)))> |
>
>
Sortir:
Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')]>
Utilisation d'un objet Enumerate dans des boucles
Enumerate() est utilisé avec une liste appelée l1. Il imprime d’abord des tuples de paires d’index et d’éléments. Ensuite, il modifie l'index de départ tout en les imprimant ensemble. Enfin, il imprime l'index et l'élément séparément, chacun sur sa propre ligne.
Python3
algorithme pour bfs
l1>=> [>'eat'>,>'sleep'>,>'repeat'>]> # printing the tuples in object directly> for> ele>in> enumerate>(l1):> >print> (ele)> # changing index and printing separately> for> count, ele>in> enumerate>(l1,>100>):> >print> (count, ele)> # getting desired output from tuple> for> count, ele>in> enumerate>(l1):> >print>(count)> >print>(ele)> |
>
>
Sortir:
(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat>
Accéder à l'élément suivant
En Python, la fonction enumerate() sert d'itérateur, héritant de toutes les fonctions et méthodes d'itérateur associées. Par conséquent, nous pouvons utiliser la fonction next() et la méthode __next__() avec un énumérer objet.
Pour accéder à l'élément suivant dans un objet enumerate, vous pouvez utiliser la fonction next(). Il prend l'objet enumerate en entrée et renvoie la valeur suivante dans l'itération.
casser Java
Python3
npm nettoyer le cache
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
>
Sortir:
Next Element: (0, 'apple')>
Vous pouvez appeler à nouveau next() pour récupérer les éléments suivants :
Python3
qu'est-ce que la ruche
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
>
Sortir:
Next Element: (0, 'apple')>
Chaque fois que next() est appelé, le pointeur interne de l'objet enumerate se déplace vers l'élément suivant, renvoyant le tuple correspondant d'index et de valeur.