Heim > Backend-Entwicklung > Python-Tutorial > Was ist ein Python-Iterator und wie wird er verwendet?

Was ist ein Python-Iterator und wie wird er verwendet?

PHPz
Freigeben: 2023-05-12 13:19:06
nach vorne
1150 Leute haben es durchsucht

Python-Iteratoren

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

Iteratoren sind iterierbare Objekte, was bedeutet, dass Sie über alle Werte iterieren können.

Technisch gesehen ist ein Iterator in Python ein Objekt, das das Iteratorprotokoll implementiert, das die Methoden iter() und next() enthält.

Iterator VS Iterable Object (Iterable)

Listen, Tupel, Wörterbücher und Mengen sind alle iterierbare Objekte. Es handelt sich um iterierbare Container, aus denen Sie einen Iterator erhalten können.

Alle diese Objekte verfügen über iter()-Methoden zum Abrufen von Iteratoren:

Instanzen

Gib einen Iterator aus einem Tupel zurück und drucke jeden Wert aus:

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

print(next(myit))
print(next(myit))
print(next(myit))
Nach dem Login kopieren

Run Instances

apple
banana
cherry
Nach dem Login kopieren

Even Strings Beide sind iterierbare Objekte und können zurückgegeben werden Iteratoren:

Instanzen

Strings sind ebenfalls iterierbare Objekte, die eine Reihe 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))
Nach dem Login kopieren

Laufende Instanzen

b
a
n
a
n
a
Nach dem Login kopieren

Iteratoren durchlaufen

Wir können auch die for-Schleife verwenden, um das iterierbare Objekt zu durchlaufen:

Instanz

iteriert den Wert des Tupels:

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

for x in mytuple:
  print(x)
Nach dem Login kopieren

führt die Instanz aus

python_iterator_loop_1.py
apple
banana
cherry
Nach dem Login kopieren

Instanz

iteriert die Zeichen in der Zeichenfolge:

mystr = "banana"

for x in mystr:
  print(x)
Nach dem Login kopieren

führt die Instanz aus

python_iterator_loop_2.py
b
a
n
a
n
a
Nach dem Login kopieren

Tipps: Die for-Schleife erstellt tatsächlich einen ator-Objekt und führt die next()-Methode für jede Schleife aus.

Iterator erstellen

Um ein Objekt/eine Klasse als Iterator zu erstellen, müssen Sie die Methoden iter() und next() für das Objekt implementieren.

Wie Sie im Kapitel „Python-Klassen/Objekte“ gelernt haben, verfügen alle Klassen über eine Funktion namens init(), mit der Sie beim Erstellen eines Objekts einige Initialisierungen durchführen können. Die Methode

iter() funktioniert ähnlich, Sie können Operationen (Initialisierung usw.) ausführen, müssen aber immer das Iteratorobjekt selbst zurückgeben. Mit der Methode

next() können Sie auch Operationen ausführen und müssen das nächste Element in der Sequenz zurückgeben.

Instanz

Erstellen Sie einen Iterator, der Zahlen zurückgibt, beginnend bei 1. Jede Sequenz erhöht sich um 1 (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))
Nach dem Login kopieren

Führen Sie die Instanz aus

python_iterator_create_1.py
1
2
3
4
5
Nach dem Login kopieren

StopIteration

Wenn Sie genügend next()-Anweisungen haben oder diese in einer for-Schleife verwenden, wird das obige Beispiel ewig weitergehen.

Um zu verhindern, dass die Iteration ewig dauert, können wir die StopIteration-Anweisung verwenden.

In der next()-Methode können wir eine Beendigungsbedingung hinzufügen, um einen Fehler auszulösen, wenn die Iteration die angegebene Anzahl von Malen abgeschlossen hat:

Die Instanz

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

Führen Sie die Instanz aus

python_iterator_create_2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist ein Python-Iterator und wie wird er verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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