生成器表示式

2022-10-09 04:54:10 字數 635 閱讀 7256

# 普通的求和函式

def add(n, i):

return n + i

# 生成器物件 返回 0 1 2 3

def test():

for i in range(4):

yield i

# 將test函式變成生成器物件

g = test()

# 簡單的for迴圈

for n in [1, 10]:

g = (add(n, i) for i in g)

"""第一次for迴圈

g = (add(n, i) for i in g)

第二次for迴圈

g = (add(10, i) for i in (add(10, i) for i in g))

"""res = list(g) # list底層就是for迴圈 相當於對g做了迭代取值操作

print(res)

#a. res=[10,11,12,13]

#b. res=[11,12,13,14]

#c. res=[20,21,22,23]

#d. res=[21,22,23,24]

"""正確答案是c 訣竅就是抓n是多少即可"""

生成器表示式

生成器 生成器本質是迭代器,允許自定義邏輯的迭代器 迭代器和生成器區別 迭代器本身是系統內建的.重寫不了.而生成器是使用者自定義的,可以重寫迭代邏輯 生成器可以用兩種方式建立 1 生成器表示式 裡面是推導式,外面用圓括號 2 生成器函式 用def定義,裡面含有yield 1 生成器表示式 gener...

生成器 表示式

1.什麼是生成器?生成的工具。生成器是乙個 自定義 的迭代器,本質上是乙個迭代器。2.如何實現生成器但凡在函式內部定義了的yield,呼叫函式時,函式體 不會執行,會返回乙個結果,該結果就是乙個生成器。yield 每一次yield都會往生成器物件中新增乙個值。yield只能在函式內部定義 yield...

生成器表示式

把列表推導式的換成 就是生成器表示式 示例 把生一筐雞蛋變成給你乙隻老母雞,這也是生成器的特性 chicken 雞蛋 s item for item in range 10 print chicken 生成器物件記憶體位址 print next chicken 雞蛋0 print next chic...