python generator iterator和iterable object

weixin_34104341發表於2020-04-07

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。

 

轉載於:https://www.cnblogs.com/hustdc/p/7576422.html

相關文章