logo

Enumerate() in Python

Wenn wir mit Iteratoren arbeiten, müssen wir oft auch die Iterationen zählen. Python erleichtert Programmierern die Arbeit, indem es für diese Aufgabe eine integrierte Funktion enumerate() bereitstellt. Die Methode enumerate() fügt einem Iterable einen Zähler hinzu und gibt ihn in Form eines Aufzählungsobjekts zurück. Dieses Aufzählungsobjekt kann dann direkt für Schleifen verwendet oder mit der Funktion list() in eine Liste von Tupeln umgewandelt werden.

Syntax: enumerate(iterable, start=0)

Parameter:



  • Wiederholbar: jedes Objekt, das Iteration unterstützt
  • Start: Der Indexwert, ab dem der Zähler gestartet werden soll, standardmäßig ist er 0

Zurückkehren: Gibt einen Iterator mit Index- und Elementpaaren aus dem ursprünglichen Iterable zurück

Beispiel

Hier verwenden wir die Funktion enumerate() sowohl mit einer Liste als auch mit einem String. Erstellen Sie für jedes Aufzählungsobjekt und zeigen Sie deren Rückgabetypen an. Außerdem wird gezeigt, wie der Startindex für die Aufzählung geändert wird, wenn er auf eine Zeichenfolge angewendet wird, was zu Index-Element-Paaren für die Liste und die Zeichenfolge führt .

Python3

k nächster Nachbar




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>)))>

>

>

Ausgabe:

Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')]>

Verwenden von Enumerate Object in Schleifen

Enumerate() wird mit einer Liste namens l1 verwendet. Zuerst werden Tupel von Index- und Elementpaaren gedruckt. Dann ändert es den Startindex, während es sie zusammen druckt. Schließlich werden der Index und das Element separat gedruckt, jeweils in einer eigenen Zeile.

Python3




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)>

>

>

Ausgabe:

(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat>

Zugriff auf das nächste Element

In Python dient die Funktion enumerate() als Iterator und erbt alle zugehörigen Iteratorfunktionen und -methoden. Daher können wir die Funktion next() und die Methode __next__() mit einem verwenden aufzählen Objekt.

Um auf das nächste Element in einem Aufzählungsobjekt zuzugreifen, können Sie die Funktion next() verwenden. Es verwendet das Aufzählungsobjekt als Eingabe und gibt den nächsten Wert in der Iteration zurück.

Python3




fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)>

>

>

Ausgabe:

Next Element: (0, 'apple')>

Sie können next() erneut aufrufen, um nachfolgende Elemente abzurufen:

Python3




fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)>

>

>

Ausgabe:

Next Element: (0, 'apple')>

Bei jedem Aufruf von next() bewegt sich der interne Zeiger des Aufzählungsobjekts zum nächsten Element und gibt das entsprechende Tupel aus Index und Wert zurück.

Java-Slice