python裡面的生成器

2021-10-05 06:12:12 字數 1322 閱讀 7343

在python裡面,一邊迴圈一邊計算的機制,成為生成器:generator,此時並不是直接生成全部列表,而是將全部生成方式儲存起來,需要時再生成

列表生成式:

生成器建立方法一:

a =

[x*2

for x in

range(10

)]#輸出是:[0,2,4,,6,8,10,12,14,16,18]

#當要依靠上述方法生成乙個列表時

b =(x*

2for x in

range(10

))#此時b就是生成器,這就是建立生成器的第乙個方法

#如果生成器在最後一次迴圈後,還要求繼續生成,就會報錯

生成器建立方法二:

#建立斐波拉契數列

deffib

(times)

: n =

0 a,b=0,

1while nprint

(b) a,b=b,a+b

n+=1return

"done"

#法二def

creatnum()

:print

('----start---'

) a,b=0,

1for i in

range(5

):yield b

a,b=b,a+b

#第一次執行時,不能寫send函式。因為此時yield函式還沒有實體,沒法儲存,或者在使用時可以這麼寫:

t =creatnum(

)t.send(

none

)#寫完send函式時,需要乙個值,但是不能在生成器沒使用過時,就使用send函式,如果需要使用只能傳回去none這個關鍵字

def

test1()

:while

true

:print

('----1----'

)def

test2()

:while

true

:print

('----2----'

)t1 =test1(

)t2 =test2(

)while

true

: t1.__next__(

) t2.__next__(

)#此時由於執行速度很快,所以相當於兩個test同時執行,相當於同時執行,成為協程,多工的一種

多工的方式有三種:協程,程序,執行緒

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 語句的函式,就是生成器函式,呼叫後返...