Python -Tutorial

Python-HOME Python-Einführung Python-Erste Schritte Python-Syntax Python-Kommentare Python-Variablen Python-Datentypen Python-Zahlen Python-Casting Python-Strings Python-Booleans Python-Operatoren Python-Listen Python-Tupel Python-Sets Python-Wörterbücher Python Wenn ... Sonst Python-While-Schleifen Python-For-Schleifen Python-Funktionen Python-Lambda Python-Arrays Python-Klassen/Objekte Python-Vererbung Python-Iteratoren Python-Bereich Python-Module Python-Daten Python-Mathematik Python-JSON Python-RegEx Python-PIP Python Versuchen ... Außer Python-Benutzereingabe Formatierung von Python-Strings

Umgang mit Dateien

Umgang mit Python-Dateien Python-Dateien lesen Python-Dateien schreiben/erstellen Python-Dateien löschen

Python-Module

NumPy-Tutorial Panda-Komplettlösung Scipy-Tutorial

Python-Matplotlib

Matplotlib-Einführung Matplotlib loslegen Matplotlib-Pyplot Matplotlib-Plotten Matplotlib-Marker Matplotlib-Linie Matplotlib-Labels Matplotlib-Raster Matplotlib-Subplots Matplotlib-Scatter Matplotlib-Bars Matplotlib-Histogramme Matplotlib-Kreisdiagramme

Maschinelles Lernen

Einstieg Mittlerer Medianmodus Standardabweichung Perzentil Datenverteilung Normale Datenverteilung Streudiagramm Lineare Regression Polynomiale Regression Mehrfache Regression Skala Trainieren/Testen Entscheidungsbaum

Python-MySQL

MySQL-erste Schritte MySQL-Datenbank erstellen MySQL-Tabelle erstellen MySQL-Einfügung MySQL-Auswahl MySQL-Wo MySQL-Reihenfolge nach MySQL löschen MySQL-Drop-Tabelle MySQL-Update MySQL-Limit MySQL-Beitritt

Python-MongoDB

Beginnen Sie mit MongoDB MongoDB Datenbank erstellen MongoDB-Create-Sammlung MongoDB-Einfügung MongoDB-Suche MongoDB-Abfrage MongoDB-Sortierung MongoDB löschen MongoDB-Drop-Sammlung MongoDB-Update MongoDB-Limit

Python-Referenz

Python-Übersicht Eingebaute Python-Funktionen Python-String-Methoden Python-Listenmethoden Methoden des Python-Wörterbuchs Python-Tupelmethoden Python-Set-Methoden Python-Dateimethoden Python-Schlüsselwörter Python-Ausnahmen Python-Glossar

Modulreferenz

Zufallsmodul Anforderungsmodul Statistikmodul Mathe-Modul cMath-Modul

Python-Anleitung

Listenduplikate entfernen Einen String umkehren Fügen Sie zwei Zahlen hinzu

Python-Beispiele

Python-Beispiele Python-Compiler Python-Übungen Python-Quiz Python-Zertifikat

Python -Iteratoren


Python-Iteratoren

Ein Iterator ist ein Objekt, das eine zählbare Anzahl von Werten enthält.

Ein Iterator ist ein Objekt, das iteriert werden kann, was bedeutet, dass Sie alle Werte durchlaufen können.

Technisch gesehen ist ein Iterator in Python ein Objekt, das das Iteratorprotokoll implementiert, das aus den Methoden __iter__() und besteht __next__().


Iterator vs. iterierbar

Listen, Tupel, Wörterbücher und Mengen sind alles iterierbare Objekte. Sie sind iterierbare Container , aus denen Sie einen Iterator erhalten können.

Alle diese Objekte haben eine iter()Methode, die verwendet wird, um einen Iterator zu erhalten:

Beispiel

Geben Sie einen Iterator aus einem Tupel zurück und geben Sie jeden Wert aus:

mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)

print(next(myit))
print(next(myit))
print(next(myit))

Sogar Strings sind iterierbare Objekte und können einen Iterator zurückgeben:

Beispiel

Strings sind ebenfalls iterierbare Objekte, die eine Folge von Zeichen enthalten:

mystr = "banana"
myit = iter(mystr)

print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))

Durchlaufen eines Iterators

Wir können auch eine forSchleife verwenden, um ein iterierbares Objekt zu durchlaufen:

Beispiel

Werte eines Tupels iterieren:

mytuple = ("apple", "banana", "cherry")

for x in mytuple:
  print(x)

Beispiel

Iterieren Sie die Zeichen einer Zeichenfolge:

mystr = "banana"

for x in mystr:
  print(x)

Die forSchleife erstellt tatsächlich ein Iteratorobjekt und führt die Methode next() für jede Schleife aus.



Erstellen Sie einen Iterator

Um ein Objekt/eine Klasse als Iterator zu erstellen, müssen Sie die Methoden __iter__()und __next__()zu Ihrem Objekt implementieren.

Wie Sie im Kapitel „ Python-Klassen/Objekte “ gelernt haben , haben alle Klassen eine Funktion namens __init__(), mit der Sie einige Initialisierungen vornehmen können, wenn das Objekt erstellt wird.

Die __iter__()Methode verhält sich ähnlich, Sie können Operationen ausführen (Initialisieren usw.), müssen aber immer das Iterator-Objekt selbst zurückgeben.

Die __next__()Methode ermöglicht Ihnen auch Operationen und muss das nächste Element in der Sequenz zurückgeben.

Beispiel

Erstellen Sie einen Iterator, der Zahlen zurückgibt, beginnend mit 1, und jede Sequenz wird um eins erhöht (gibt 1,2,3,4,5 usw. zurück):

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

StopIteration

Das obige Beispiel würde endlos fortgesetzt werden, wenn Sie genügend next() -Anweisungen hätten oder wenn es in einer forSchleife verwendet würde.

Um zu verhindern, dass die Iteration ewig weitergeht, können wir die StopIterationAnweisung verwenden.

In der __next__()Methode können wir eine Beendigungsbedingung hinzufügen, um einen Fehler auszulösen, wenn die Iteration eine bestimmte Anzahl von Malen durchgeführt wird:

Beispiel

Stopp nach 20 Iterationen:

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self

  def __next__(self):
    if self.a <= 20:
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration

myclass = MyNumbers()
myiter = iter(myclass)

for x in myiter:
  print(x)