1. 程式人生 > >python generator iterator和iterable object

python generator iterator和iterable object

lis 種類型 最大的 總結 obj 返回函數 pytho 方式 object

1 iterable object

list、dict、set、tuple、file(在每行上iterate)等都是iterable object,但是它們不是iterator。但是它們可以轉換成iterator,通過兩種方式:

第一,顯式的使用iter()函數;

第二,隱式的使用for

2 iterator

iterator也是iterable的。

3 generator

3.1 種類

有兩種類型的generators

3.2 使用yield來返回的函數形式的generator

使用yield返回函數值的函數是generator,generator是一種特殊的iterator,因此以iterator作為參數的函數都可以使用generator。

3.3 使用generator comprehension形式的generator

即圓括號形式的generator comprehension本質是一個generator。

總結一下,

三者的關系如下:

generator是iterator,iterator是iterable object,所以,最大的是iterable object。

python generator iterator和iterable object