Detaillierte Erläuterung von Beispielen für Python-Iteratoren

零下一度
Freigeben: 2017-06-29 10:06:17
Original
2012 Leute haben es durchsucht

Ein Objekt, das direkt in einer for-Schleife verwendet werden kann, wird als iterierbares Objekt (iterable) bezeichnet.

Ein Objekt, das von der Funktion next() aufgerufen werden kann und kontinuierlich den nächsten Wert zurückgibt, wird als an bezeichnet iterator;

Alle iterierbaren Objekte können über die integrierte Funktion iter() in Iteratoren umgewandelt werden.

Bei Verwendung einer for-Schleife ruft das Programm automatisch das Iteratorobjekt des zu verarbeitenden Objekts auf und verwendet dann seine next()-Methode, bis eine Stoplteration-Ausnahme erkannt wird.

>>> l = [4,5,6,7,8,9,0]   #这是一个列表
>>> i = iter(l)                 #可迭代对象转换为迭代器;
>>> next(i)
4
>>> next(i)
5
>>> next(i)
6
>>> next(i)
7
>>> next(i)
8
>>> next(i)
9
>>> next(i)
0
>>> next(i)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
Nach dem Login kopieren

Da es in der Liste keine Zahlen gibt, die 0 überschreiten, wird bei Überschreitung des Bereichs eine StopIteration-Ausnahme zurückgegeben.

Wie man in einer Produktionsumgebung beurteilt

>>> L = [4,5,6]
>>> I = L.__iter__()
>>> L.__next__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: &#39;list&#39; object has no attribute &#39;__next__&#39;
>>> I.__next__()
4
>>> from collections import Iterator, Iterable
>>> isinstance(L, Iterable)
True
>>> isinstance(L, Iterator)
False
>>> isinstance(I, Iterable)
True
>>> isinstance(I, Iterator)
True
>>> [x**2 for x in I]    
[25, 36]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für Python-Iteratoren. 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