Dieser Artikel stellt hauptsächlich die Definition und einfache Verwendung von Python-Iteratoren vor und analysiert das Konzept, das Prinzip, die Erstellung und die Verwendung von Iteratoren in Form von Beispielen. Freunde in Not können sich darauf beziehen.
Die Beispiele in In diesem Artikel werden die Definition und einfache Verwendung des Python-Iterators beschrieben. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1. Was ist ein Iterator?
Iteration bedeutet, wie der Name schon sagt, etwas zu wiederholen mal (machen Sie es jetzt einfach in einer Schleife) ). Ein Iterator ist ein Objekt, das die Methode __next__() implementiert (diese Methode erfordert beim Aufruf keine Parameter). Dies ist eine Möglichkeit, auf eine iterierbare Sequenz zuzugreifen, bis sie endet Auf alle Elemente wurde zugegriffen. [Hinweis]: Iteratoren können sich nur vorwärts, aber nicht rückwärts bewegen
[Vorteile von Iteratoren]:
Keine Anforderungen für die Verwendung von Iteratoren Bereiten Sie alle Elemente der gesamten Iteration im Voraus vor. Der Iterator berechnet ein Element nur, wenn er zu ihm iteriert, und das Element darf vorher oder nachher nicht existieren oder zerstört werden. Daher eignen sich Iteratoren zum Durchlaufen einiger großer oder sogar unendlicher Sequenzen.
2. Erstellen Sie einen Iterator
A. Verwenden Sie die integrierte Factory-Funktion iter(iterable), um eine iterierbare Sequenz in einen Iterator umzuwandeln
a=[1,2,3,4] b=(1,2,3) str='Tomwenxing' print(iter(a)) print(iter(b)) print(iter(str))
Laufergebnis:
B. Benutzerdefinierter Iterator
•Das Wesentliche an Iteratoren in Python ist, dass jedes Mal, wenn die __next__()
-Methode aufgerufen wird, das nächste Element zurückgegeben wird oder StopIteration wird geworfen. Containerobjekt
• Da es in Python keine „Iterator“-Klasse gibt, können Klassen mit den folgenden zwei Eigenschaften als „Iterator“-Klassen bezeichnet werden:
1. Es gibt __next__()
Methode, gibt das nächste Element des Containers zurück oder löst eine StopIteration-Ausnahme aus
2. Es gibt eine __iter__()
-Methode, die den Iterator selbst zurückgibt
#斐波那契数列 class Fabs(): def __init__(self,max): self.max=max self.n,self.a,self.b=0,0,1 def __iter__(self):#定义__iter__方法 return self def __next__(self):#定义__next__方法 if self.n<self.max: tmp=self.b self.a,self.b=self.b,self.a+self.b #等价于: #t=(self.a,self.a+self.b) #self.a=t[0] #self.b=t[1] self.n+=1 return tmp raise StopIteration print(Fabs(5)) for item in Fabs(10): print(item,end=' ')
Laufergebnis:
<__main__.Fabs-Objekt bei 0x00000000023F9278>
1 1 2 3 5 8 13 21 34 55
3. Iteratormethoden
1.iter.__next__(): Gibt das nächste Element des Iterators zurück, löst jedoch eine StopIteration-Ausnahme aus, wenn es kein nächstes Element gibt
list=[1,2,3,4] list=iter(list) print(list.__next__()) print(list.__next__()) print(list.__next__()) print(list.__next__()) print(list.__next__())
Laufendes Ergebnis:
Traceback (letzter Aufruf zuletzt):
Datei „E:py3DemoHelloiterDemo.py“, Zeile 7, in
print(list.__next__())
StopIteration
1
2
3
4
2.iter.__iter__(): Gibt das Iteratorobjekt selbst zurück
list=[1,2,3,4] list=iter(list) print(list.__iter__())
Laufergebnis:
Verwandte Empfehlungen:
Verwendung des Python-Iterators Beispiele für next() in
Das obige ist der detaillierte Inhalt vonDefinition des Python-Iterators und einfache Nutzungsanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!