Python學習筆記 生成器

2021-07-03 22:41:51 字數 678 閱讀 8568

有時候乙個列表裡的元素過多,多到計算機記憶體存不下來,我們就需要想乙個辦法解決這個問題,如果能在需要的時候生成新元素就好了,可以用生成器。生成器–一種邊迴圈邊根據某種演算法計算生成元素的機制

如何建立乙個生成器呢,最簡單的方法通過修改一下列表生成器建立。

n = (n for n in

range(10))

def

fib(max):

n,a,b = 0,0,1

while n < max:

yield b

a,b = b,a+b

n = n+1

這就生成了乙個能生成斐波那契數的生成器,他的原理是遇到yield就中斷直到下一次呼叫再繼續執行。yield的作用類似return如上面的例子就是返回b的值。

要讓生成器生成元素需要先建立生成器物件b,再使用next(b)

生成器是可以迭代的所以能使用如下**生成

b = fib(max)

for n in b:

...

Python生成器學習筆記

生成器在python中首先是乙個物件,用於建立python序列。使用生成器可以迭代龐大的序列,且不需要在記憶體中建立和儲存整個序列。通常,生成器是為迭代器產生資料的。典型的使用用例是range 函式。每次迭代生成器時,生成器會記住上一次呼叫的內容,並且返回下乙個值。生成器函式和普通函式類似,但是它的...

Python筆記 生成器

日期 20170925 python中有乙個很有趣的東東,叫生成器。我們先來看看簡單的 1,usr bin python3 defmygenerator for n in range 1,4 yield n return done print mygenerator print num mygene...

python生成器筆記

生成器 自動實現了迭代器協議 物件必須提供乙個next方法,執行改方法要麼返回迭代中的下一項,要麼就引起乙個stopiteration的異常,以終止迭代 只能往後走不能往前進 第一種形式 idter i for i in range 10 idter為乙個生成器,有next 方法,idter.nex...