生成器,函式式程式設計等

2021-10-25 09:29:51 字數 926 閱讀 2886

生成器:

​ 語法:

​ 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...