Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle und verwende ich Iteratoren in Python?

Wie erstelle und verwende ich Iteratoren in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-29 17:33:11220Durchsuche

How Do I Create and Use Iterators in Python?

Erstellen eines Iterators in Python

Das Erstellen eines Iterators in Python erfordert die Implementierung des Iteratorprotokolls, das zwei wesentliche Methoden angibt: __iter__() und __nächste__(). Diese Methoden definieren, wie Objekte initialisiert und durch eine Folge von Werten iteriert werden können.

Das Iterator-Protokoll verstehen

In __iter__() wird das Iteratorobjekt zurückgegeben, d. h Wird normalerweise implizit am Anfang von Schleifen aufgerufen. __next__() ist die primäre Methode, die den nächsten Wert in der Sequenz zurückgibt. Für Python 2-Benutzer ist diese Methode als next() bekannt. Wenn alle Werte erschöpft sind, löst __next__() eine StopIteration-Ausnahme aus, die von Schleifenkonstrukten erfasst wird, um die Iteration zu beenden.

Ein Beispiel: Der Counter Iterator

Lassen Sie uns einen einfachen erstellen Zähleriterator, der Werte innerhalb eines angegebenen Bereichs generiert:

class Counter:
    def __init__(self, low, high):
        self.current = low - 1
        self.high = high

    def __iter__(self):
        return self

    def __next__(self): # Python 2: def next(self)
        self.current += 1
        if self.current < self.high:
            return self.current
        raise StopIteration

# Usage:
for c in Counter(3, 9):
    print(c)

Dies führt zu Folgendem Ausgabe:

3
4
5
6
7
8

Generatoren für Iteratoren verwenden

Generatoren bieten einen alternativen Mechanismus zum Erstellen von Iteratoren. Generatorfunktionen liefern Werte nacheinander und implementieren so effektiv das Iteratorprotokoll.

def counter(low, high):
    current = low
    while current < high:
        yield current
        current += 1

# Usage:
for c in counter(3, 9):
    print(c)

Der obige Code erzeugt die gleiche Ausgabe wie die Counter-Klasse.

Zusätzliche Ressourcen

Ein umfassendes Verständnis von Iteratoren finden Sie in Ressourcen wie dem Artikel „Iteratoren und einfache Generatoren“ von David Mertz.

Das obige ist der detaillierte Inhalt vonWie erstelle und verwende ich Iteratoren in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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