Python中的生成器

2021-08-31 21:07:02 字數 556 閱讀 3221

python中的生成器,邊迴圈邊計算,節省記憶體

l = [x*2 for x in range(5) ]

print(l)

g = (x*2 for x in range(5))

print(g)

print(next(g))

def fib(n):

a,b = 0,1

i = 0

while(ig = fib(5)這行**只是生成了乙個生成器,並沒有把所有的結果計算出來。只有在迭代這個生成器的時候,才會計算每次的結果。第一次迭代,執行到yield時,程式會暫停,然後返回這次生成器的結果輸出;之後,繼續執行程式,繼續第二次迭代,再次到yield時,程式再次暫停,輸出此次生成器結果;再繼續第三次迭代。。。再到yield。。再輸出結果。。繼續下一次迭代

節約記憶體

迭代到下一次的呼叫時,所使用的引數都是第一次所保留下的,即是說,在整個所有函式呼叫的引數都是第一次所呼叫時保留的,而不是新建立的

python 生成器作用 Python生成器

生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...

python生成器好處 Python生成器筆記

python中三大器有迭代器,生成器,裝飾器,本文主要講述生成器。主要從生成器的概念,本質,以及yield關鍵字的使用執行過程。本質 生成器是一類特殊的迭代器,使用了yield關鍵字的函式不再是函式,而是生成器。使用了yield的函式就是生成器 1.yield關鍵字有兩點作用 1.1 yield語句...

python生成器函式 Python 生成器函式

一 生成器 生成器指的是生成器物件,可由生成器表示式得到,也可使用 yield 關鍵字得到乙個生成器函式,呼叫這個函式得到乙個生成器物件 生成器物件,是乙個可迭代物件,是乙個迭代器 生成器物件,是延遲計算 惰性求值的 1.1 生成器函式 函式體重包含 yield 語句的函式,就是生成器函式,呼叫後返...