1. 程式人生 > >迭代器以及生成器

迭代器以及生成器

迭代器的特點:

1. 省記憶體
2. 惰性機制, 不訪問__next__() 就沒有值.
3. 只能向前. 不能反覆.

生成器的特點

本質就是迭代器, 生成器函式. 就是把return換成yield

迭代器函式:

def func():

  pint("真好")

  return "還不錯"

如果直接執行函式func() 會列印"真好"

n = func(),然後再列印n的話會列印" 真好",然後返回值"還不錯"

生成器函式:

def func():

  print("真好")

  yield "還不錯"

直接執行函式不會有任何顯示.

n = func(),可以獲得一個生成器物件

然後執行print(n.__next__())遇到第一個yueld會停止執行,如果繼續執行會報錯StopIteration

兩種方式寫生成器

  1. 生成器函式
  2. 生成器表示式

 生成器的表示式(結果 for迴圈 if判斷)