Python-Iteratoren: Was ist Iterator in Python und wie wird es verwendet?



In diesem Blog über Python-Iteratoren werden wir eine eingehende Studie über Iteratoren in Python und deren Implementierung durchführen.

Die Programmiersprache Python hat jeden Aspekt der Innovation skaliert, einschließlich , , usw. Einer der vielen Gründe für dieses Kunststück sind Konzepte wie Python Iterators. Konzepte wie diese sind die Bausteine ​​für Pythons Triumph als Programmiersprache. In diesem Artikel werden wir die folgenden Konzepte durchgehen, um Python-Iteratoren zu verstehen:

Iteratoren gegen Iterable

Ein Objekt in Python, das als Iterable-Objekt verwendet werden kann, wird als Iterable bezeichnet. Dies bedeutet im Grunde, dass die Sequenz im Objekt wiederholt werden kann. Die meisten Python-Sammlungen mögen a Liste , , Tupel , setzt , und sogar Angebot kann als Iterable behandelt werden.





Was sind Python-Iteratoren?

Ein Python I. terator ist ein Container, der eine zählbare Anzahl von Werten enthält. Werte in einem Container können mit Iteratoren - insbesondere Listen - durchlaufen werden.

Abgesehen von der Durchquerung bieten Iteratoren auch Zugriff auf Datenelemente in einem Container, führen jedoch selbst keine Leistung ausWiederholungnicht ohne eine signifikante Freiheit, die mit diesem Konzept oder mit der trivialen Verwendung der Terminologie genommen wird. Ein Iterator ähnelt fast einemDatenbankcursorim Verhalten. Hier ist ein einfaches Beispiel für den Iterator in .



my_obj = {'Edureka', 'Python', 'Iterator'} iter_obj = iter (my_obj) print (next (iter_obj))

Ausgabe: Edureka

Iterator ist jede Art von Python, die mit einer for-Schleife verwendet werden kann.Jedes Objekt, das als Iterator verwendet werden soll, muss die folgenden Methoden implementieren.

Iteratoren in Python - Edureka



1. __iter __ ()

Es wird bei der Initialisierung eines Iterators aufgerufen.Es sollte ein Objekt zurückgeben, das eine next- oder __next__- Methode hat.

2. __next __ ()

Die nächste Methode des Iterators gibt den nächsten Wert für die Iterable zurück.

Wenn ein Iterator mit einer for-in-Schleife verwendet wird, wird next () implizit von aufgerufen auf dem Iterator-Objekt. Diese Methode sollte eine StopIteration verwenden, um das Ende der Iteration zu signalisieren.Zusammen werden diese beiden Methoden als Iterator-Protokoll bezeichnet. Versuchen wir anhand eines Beispiels zu verstehen, wie eine for-Schleife in Python als Iterator fungiert.

für i im Objekt: print (i)

Lassen Sie uns verstehen, wie for loop als Iterator funktioniert.

# Erstellen Sie ein Iteratorobjekt aus dieser iterierbaren iter_obj = iter (iterable) # Endlosschleife, während True: try: # Holen Sie sich das nächste Element element = next (iter_obj) # Machen Sie etwas mit dem Element außer StopIteration: # Wenn StopIteration ausgelöst wird, brechen Sie die Schleife ab brechen

Jetzt wo wir wissen, wie die für Schleife arbeitet als Iterator. Lassen Sie uns verstehen, wie wir benutzerdefinierte Iteratoren in Python implementieren können.

Benutzerdefinierte Iteratoren

Lassen Sie uns nun einen Blick darauf werfen, wie wir benutzerdefinierte Iteratoren in Python implementieren können. Um dies zu verstehen, verwenden wir ein Beispiel. In diesem Beispiel implementieren wir die Methoden __iter __ () und __next __ ().

Klasse MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter))

Ausgabe: ein

2

3

Nachdem wir nun wissen, wie wir benutzerdefinierte Iteratoren implementieren können, werfen wir einen Blick auf unendliche Iteratoren in Python.

Unendliche Iteratoren

Es ist nicht immer obligatorisch, dass das Element in einem Iterator-Objekt erschöpft sein muss. Es kann unendlich viele Iteratoren geben (die niemals enden). Hier ist ein grundlegendes Beispiel, um unendliche Iteratoren zu demonstrieren.

Das eingebaute iter ()kann mit zwei Argumenten aufgerufen werden, wobei das erste Argument ein Objekt (eine Funktion) sein muss, das aufgerufen werden kann, und das zweite der Sentinel ist. Der Iterator ruft diese Funktion auf, bis der zurückgegebene Wert dem Sentinel entspricht.

Nehmen wir ein Beispiel, um dies zu verstehen

Klasse MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter))

Ausgabe: ein
2
3
4
5

Im obigen Beispiel wird die Ausführung fortgesetzt, solange wir die print-Anweisung hinzufügen. Um die unendlichen Iteratoren zu stoppen, müssen wir die Anweisung stopIteration verwenden.

wie man aws cli öffnet

StopIteration

Um zu verhindern, dass eine Iteration für immer weitergeht, verwenden wir die StopIteration-Anweisung. Lassen Sie uns dies anhand einiger Beispiele verstehen.

Klasse MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): wenn self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: erhöhe StopIteration myclass = MyNumbers () myiter = iter (myclass) für x in myiter: print (x)

Ausgabe: ein
2
3
4
5

Jetzt sobald der Bedingung ist falsch, die Ausführung wird in den else-Block verschoben und die Iteration wird gestoppt. Schauen wir uns nun einige andere Beispiele für Iteratoren in Python an.

Beispiele für Python-Iteratoren

Hier sind einige weitere Beispiele für Iteratoren in Python.

my_obj = ['Edureka', 'Python', 'Iterator'] iter_obj = iter (my_obj) print (next (iter_obj))

Ausgabe: Edureka

In diesem Beispiel verwenden wir das Tupel als iterierbares Objekt.

my_obj = ('Edureka', 'Python', 'Iterator') iter_obj = iter (my_obj) print (next (iter_obj))

Ausgabe: Edureka

Wir können den String sogar als iterierbares Objekt in Python verwenden.

my_obj = 'Edureka' iter_obj = iter (my_obj) print (next (iter_obj))

Ausgabe: IS

Dies bringt uns zum Ende dieses Artikels, wo wir anhand von Beispielen gelernt haben, wie wir die Python-Iteratoren verwenden. Ich hoffe, Sie sind mit allem klar, was Ihnen in diesem Tutorial mitgeteilt wurde.

Wenn Sie diesen Artikel zu 'Python Iterators' relevant fanden, lesen Sie Ein vertrauenswürdiges Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt.

Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen und einen Lehrplan zu erstellen, der für Studenten und Fachleute konzipiert ist, die eine sein möchten . Der Kurs soll Ihnen einen Vorsprung in die Python-Programmierung verschaffen und Sie sowohl für Kern- als auch für fortgeschrittene Python-Konzepte sowie für verschiedene Konzepte schulen mögen

Wenn Sie auf Fragen stoßen, können Sie alle Ihre Fragen im Kommentarbereich von „Python Iterators“ stellen. Unser Team wird Ihnen gerne antworten.