能夠直接做用於for
循環的數據類型有如下幾種:python
一類是集合數據類型,如list
、tuple
、dict
、set
、str
等;函數
一類是generator
,包括生成器和帶yield
的generator function。spa
這些能夠直接做用於for
循環的對象統稱爲可迭代對象:Iterable
。code
而生成器不但能夠做用於for
循環,還能夠被next()
函數不斷調用並返回下一個值,直到最後拋出StopIteration
錯誤表示沒法繼續返回下一個值了。對象
能夠被next()
函數調用並不斷返回下一個值的對象稱爲迭代器:Iterator
。generator
生成器(generator )都是
ioIterator
對象,但list
、dict
、str
雖然是Iterable(可迭代的)
,卻不是Iterator(迭代器)
。