Heim >Backend-Entwicklung >Python-Tutorial >Python-Grundlagen-Iteratoren und -Generatoren

Python-Grundlagen-Iteratoren und -Generatoren

高洛峰
高洛峰Original
2017-03-27 16:41:012018Durchsuche

Iteratoren und Generatoren


1. Iteratoren

Iterator ist ein Weg dazu Auf Sammlungselemente zugreifen. Das Iteratorobjekt beginnt mit dem Zugriff vom ersten Element der Sammlung, bis auf alle Elemente zugegriffen wurde. Iteratoren können nur vorwärts und nicht rückwärts gehen, aber das ist in Ordnung, da Menschen beim Iterieren selten rückwärts gehen. Darüber hinaus besteht einer der großen Vorteile von Iteratoren darin, dass nicht alle Elemente im Voraus für den gesamten Iterationsprozess vorbereitet werden müssen. Der Iterator berechnet ein Element nur, wenn er zu ihm iteriert, und davor oder danach existiert das Element möglicherweise nicht oder wird zerstört. Diese Funktion eignet sich besonders zum Durchsuchen einiger großer oder unendlicher Sammlungen, wie z. B. mehrerer G-Dateien

Funktionen:

  1. Besucher müssen sich nicht um die interne Struktur des Iterators kümmern, sie müssen nur weiterhin den nächsten Inhalt über die next()-Methode abrufen

  2. Kann nicht zufällig sein Um auf einen Wert in der Sammlung zuzugreifen, können Sie nur nacheinander von Anfang bis Ende darauf zugreifen

  3. Sie können nicht zurückgehen, wenn Sie sich in der Mitte des Zugriffs befinden

  4. Einfaches Durchlaufen relativ großer Datensätze und Einsparen von Speicher


>>> a = iter([1,2,3,4,5])
>>> a
<list_iterator object at 0x101402630>
>>> a.__next__()
1
>>> a.__next__()
2
>>> a.__next__()
3
>>> a.__next__()
4
>>> a.__next__()
5
>>> a.__next__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

2. Generator

Wenn eine Funktion aufgerufen wird, gibt sie einen Iterator zurück, dann wird diese Funktion als Generator bezeichnet Funktion enthält Yield-Syntax, dann wird die Funktion zu einem Generator.


def func():
    yield 1
    yield 2
    yield 3
    yield 4

Im obigen Code ist func eine Funktion, die als Generator bezeichnet wird . Bei dieser Funktion erhält func( ) einen Iterator.


>>> temp = func()
>>> temp.__next__()
1
>>> temp.__next__()
2
>>> temp.__next__()
3
>>> temp.__next__()
4
>>> temp.__next__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

3. Beispiel

a Bereich


def xrange(n):   
    start = 0
    print(start)
    while True:
        if start > n :
            return
        yield start
        start += 1
obj = xrange(4)
n1 = obj.__next__()
n2 = obj.__next__()
n3 = obj.__next__()
n4 = obj.__next__()
n5 = obj.__next__()
n6 = obj.__next__()
print(n1,n2,n3,n4,n5,n6)

b, verwenden Sie den Iterator, um auf den Bereich zuzugreifen

Das obige ist der detaillierte Inhalt vonPython-Grundlagen-Iteratoren und -Generatoren. 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