生成器:
語法:
def 函式名():
yield 資料(生成許多資料)
(變數 for 變數 in 可迭代物件 if 條件)
現象:延遲呼叫/惰性操作
核心:推算資料
優點:節省記憶體
缺點:獲取資料不靈活(不能索引切片,只能用一次)
解決方法:轉換為容器
適用性:函式得結果有多個,使用yield來返回;
函式得結果有乙個,使用return來返回。
函式式程式設計:
def 功能1():
通用**
變化點1()
def 功能2():
通用**
變化點2()
def 變化點1():
def 變化點2():
def 通用**(引數):
引數()
通用**(變化點2)
通用**(lambda 引數:函式體)
def find_numbers(list_data):
for item in list_data:
if type(item) == int:
yield item
generator = result = find_numbers([4,"a",5,"b",7,78,98.5])
# 生成器轉換為容器後,就可以使用索引切片定位資料
# 靈活的操作
tuple_data = tuple(generator)
print(tuple_data[:2])
print(tuple_data[-1])
# 省記憶體的操作
# for item in generator:
# print(item)
生成器 生成器函式 推導式 生成器表示式
一 生成器 生成器的本質就是迭代器 生成器一般由生成器函式或者生成器表示式來建立 其實就是手寫的迭代器 def func print 111 yield 222ret func print ret 因為函式中存在yield,那麼這個函式就是乙個生成器函式。這個時候我們在想執行函式就不再是執行函式了,...
函式式程式設計 列表生成式 生成器 迭代器
a 1,2,3,4,5,6,7,8 每個元素遞加1 a i 1 for i in a 這就是列表生成公式 print a 優點 簡潔 a1 i for i in range 5 編寫生成器,a1 裡面記錄的是計算公式 print a1 列印公式 generator 就是生成器的意思 print ne...
生成器函式 推導式
1.生成器 本質就是迭代器 2種方法寫生成器 1.生成器函式 def func yield g func 得到生成器 函式內部有yield返回,yield把函式分段執行,生成函式被呼叫的時候就返回生成器 next 開始執行生成器,執行到yield,直到丟擲stopiteration yield和re...