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ù)的書(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爬蟲(chóng)", "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爬蟲(chóng)","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爬蟲(chóng)", "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爬蟲(chóng)","Python數(shù)據(jù)分析"]
4.匿名函數(shù)的組合使用
map函數(shù)
filter函數(shù)
reduce函數(shù)
sorted函數(shù)
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子
今天小編就為大家發(fā)信息一篇Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08Python 多繼承中的一個(gè)詭異現(xiàn)象 既是 Father又是grandfather
我們知道,在面向?qū)ο缶幊汤锩妫^承是一個(gè)很重要的概念。子類可以使用父類的方法和屬性,接下來(lái)小編將用舉例的方式為大家講解Python 多繼承中的一個(gè)詭異現(xiàn)象 其即是爸爸又是爺爺?shù)钠孑猬F(xiàn)象,感興趣的小伙伴可以看下面文章具體了解2021-09-09python自動(dòng)填寫問(wèn)卷星問(wèn)卷以及提交問(wèn)卷等功能
這篇文章主要給大家介紹了關(guān)于python自動(dòng)填寫問(wèn)卷星問(wèn)卷以及提交問(wèn)卷等功能的相關(guān)資料,包括使用Selenium庫(kù)模擬瀏覽器操作、定位元素、填寫表單等,通過(guò)本文的學(xué)習(xí),讀者可以了解如何利用Python自動(dòng)化技術(shù)提高問(wèn)卷填寫效率,需要的朋友可以參考下2023-03-03Python3使用Matplotlib 繪制精美的數(shù)學(xué)函數(shù)圖形
這篇文章主要介紹了Python3使用Matplotlib 繪制精美的數(shù)學(xué)函數(shù)圖形,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04TensorFlow卷積神經(jīng)網(wǎng)絡(luò)MNIST數(shù)據(jù)集實(shí)現(xiàn)示例
這篇文章主要介紹了TensorFlow卷積神經(jīng)網(wǎng)絡(luò)MNIST數(shù)據(jù)集的實(shí)現(xiàn)示例的過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11從Python的源碼來(lái)解析Python下的freeblock
這篇文章主要介紹了從Python的源碼來(lái)解析Python下的freeblock,包括內(nèi)存空間分配等知識(shí),需要的朋友可以參考下2015-05-05