Heim > Backend-Entwicklung > Python-Tutorial > Definition des Python-Iterators und einfache Nutzungsanalyse

Definition des Python-Iterators und einfache Nutzungsanalyse

不言
Freigeben: 2018-05-02 15:41:38
Original
1579 Leute haben es durchsucht

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))
Nach dem Login kopieren

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=&#39; &#39;)
Nach dem Login kopieren

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__())
Nach dem Login kopieren

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__())
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage