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
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: 'list' object has no attribute '__next__' >>> 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]
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!