1,生成器生成器的本質就是迭代器
生成器的特點和迭代器一樣,取值方式和迭代器一樣(
__next__
(),send():給上乙個yield傳值)
生成器一般有生成器函式或者生成器表示式來建立
其實就是手寫的迭代器
2,生成器函式
和普通函式沒有區別,裡面有yield的函式就是就是生成器函式
生成器函式在執行的時候,預設不會執行函式體,返回生成器
通過生成器的__next__()分段執行這個函式
send()給上乙個yield傳值,不能在開頭的位置(沒有上乙個yield),最後乙個yield也不可以用send()
3,推導式
1,列表推導式 [結果, for迴圈, 條件篩選]
2,字典推導式
3,集合推導式 { k ,for迴圈,條件篩選]
4,生成器表示式
(結果 for迴圈 條件)
特點:1,惰性機制
2,只能向前
3,節省記憶體
1,deffunc():
print(111)
yield 222
yield 333g = func() #
獲取生成器
g1 = (i for i in g) #
生成器g2 = (i for i in g1) #
生成器print(list(g2)) #
111 \n [222,333] 源頭,從源頭把資料拿走了
print(list(g1)) #
這裡執行的時候,源頭已經沒有資料
2,很坑的面試題def add(a,b): #求和
return a+b
def test(): #生成器函式 0,1,2,3
for i in range(4):
yield i
g = test() #獲取生成器
for n in [2,10]: #到最後才放資料(惰性)
g = (add(10,i)for i in g)
#此時的g是乙個生成器,實際上內部並沒有被執行
相當於以下**:
n = 10g = (add(n, i) for i in g)
g = (add(n, i) for i in g)
print(list(g)) # [20, 21, 22, 23] 此時才會動生成器
css內容生成器
一,內容生成器 content 補充before和after偽類選擇器 1 將內容新增到某個選擇器定義的單個或者多個元素的每乙個例項之前或者之後 2 與before選擇器配合使用 同理大家想下會不會有after?content的作用 1,作用 在被選元素的內容前面插入內容 2,用法 使用conten...
python 生成器作用 Python生成器
生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...
python生成器好處 Python生成器筆記
python中三大器有迭代器,生成器,裝飾器,本文主要講述生成器。主要從生成器的概念,本質,以及yield關鍵字的使用執行過程。本質 生成器是一類特殊的迭代器,使用了yield關鍵字的函式不再是函式,而是生成器。使用了yield的函式就是生成器 1.yield關鍵字有兩點作用 1.1 yield語句...