迭代器(Iterator)與可迭代的(Iterable)

可以被next()函數調用並不斷返回下一個值的對象稱爲迭代器:Iterator

from collections import Iterable
isinstance([],Iterable)
Out[4]: True
#可迭代的
from collections import Iterator
isinstance([],Iterator)
Out[8]: False
#但是並不是一個迭代器

總結

凡是可作用於for循環的對象都是Iterable類型;

凡是可作用於next()函數的對象都是Iterator類型,它們表示一個惰性計算的序列;

集合數據類型如list、dict、str等是Iterable但不是Iterator,不過可以通過iter()函數獲得一個Iterator對象。

Python的for循環本質上就是通過不斷調用next()函數實現的,例如:

b= [1,2,3,4,5]
for i in b:
    print(i)
#等同於以下代碼
a = iter([1,2,3,4,5])
while True:
    try:
        x=next(a)
        print(x)
    except StopIteration:
        break
發佈了128 篇原創文章 · 獲贊 34 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章