python的函數(shù)和方法(中)
匿名函數(shù)
1.什么是匿名函數(shù)
lambda是個(gè)匿名函數(shù),也是一個(gè)表達(dá)式,是函數(shù)的最小作戰(zhàn)單元
匿名函數(shù)顧名思義,就是“無(wú)名”函數(shù)
匿名函數(shù)適用于簡(jiǎn)單的業(yè)務(wù)邏輯
一行一個(gè)函數(shù)
通俗的說(shuō)邏輯不復(fù)雜,不需要大規(guī)模批量調(diào)用的功能可使用匿名函數(shù)構(gòu)建,匿名函數(shù)的書寫特性決定其簡(jiǎn)易性
#lambda簡(jiǎn)約而不簡(jiǎn)單
注意lambda是 python的一個(gè)關(guān)鍵字,用于聲明一個(gè)匿名函數(shù)
**匿名函數(shù)的難點(diǎn)不在于其構(gòu)建本身,在于其組合使用的難度!
2.如何聲明/調(diào)用一個(gè)匿名函數(shù)(lambda)
#傳統(tǒng)函數(shù): def add(num1): return num1 * 2 調(diào)用:add(2) 輸出:4 def add(num1,num2): return num1 + num2 調(diào)用:add(1,2) 輸出:3 #匿名函數(shù): result = lambda x: x*2 調(diào)用:result(2) 輸出:4 result = lambda x,y: x+y 調(diào)用:result(x=1,y=2) 輸出:3
3.匿名函數(shù)的幾種使用方式
#1、匿名函數(shù)組合三目運(yùn)算 傳統(tǒng)函數(shù) def compare(x,y): if x > y: return x else: return y 調(diào)用:compare(2,1) 輸出:2 匿名函數(shù) compare = lambda x,y: x if x > y else y 調(diào)用:compare(2,1) 輸出:2
#2、把lambda作為一個(gè)方法傳入傳統(tǒng)函數(shù) schools = ["Python基礎(chǔ)", "Python爬蟲", "Java編程", "Java Web", "Python數(shù)據(jù)分析" ] def keyword_serch(keys,func): search_result= [] for result in keys: if func(result): search_result.append(result) return search_result condition = lambda x: True if "Python" in x else False 調(diào)用:keyword_serch(schools,condition) 輸出: ["Python基礎(chǔ)","Python爬蟲","Python數(shù)據(jù)分析"]
#3、如何給def函數(shù)中的lambda傳參數(shù)? def main(): return lambda x: True if x == 10 else False (如果x等于10返回真,否則為假) 調(diào)用:main()(10) 執(zhí)行main函數(shù),但是main不需要傳參; 第二個(gè)括弧則是為lambda傳送的x的參數(shù) 輸出:True
#4、把lambda作為一個(gè)方法傳入傳統(tǒng)函數(shù)
def income(basic,transport,phone):
return lambda x: x+basic+transport+phone
調(diào)用:total = income(1000,2000,3000)
total(4000)
輸出:10000
schools = ["Python基礎(chǔ)",
"Python爬蟲",
"Java編程",
"Java Web",
"Python數(shù)據(jù)分析"
]
def keyword_search(keys,func):
search_result= []
for key in keys:
if func(key):
search_result.append(key)
return search_result
def search_condition(c):
return lambda x: True if c in x else False
python = search_condition("Python")
調(diào)用:keyword_search(schools,python)
輸出:["Python基礎(chǔ)","Python爬蟲","Python數(shù)據(jù)分析"]
4.匿名函數(shù)的組合使用

map函數(shù)


filter函數(shù)


reduce函數(shù)


sorted函數(shù)



總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信