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ū)寫(xiě)特性決定其簡(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)文章
python [:3] 實(shí)現(xiàn)提取數(shù)組中的數(shù)
今天小編就為大家分享一篇python [:3] 實(shí)現(xiàn)提取數(shù)組中的數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
Python爬蟲(chóng)之Selenium設(shè)置元素等待的方法
這篇文章主要介紹了Python爬蟲(chóng)之Selenium設(shè)置元素等待的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
學(xué)習(xí)Python爬蟲(chóng)的幾點(diǎn)建議
這篇文章主要介紹了學(xué)習(xí)Python爬蟲(chóng)的幾點(diǎn)建議,對(duì)新手學(xué)習(xí)爬蟲(chóng)有很大的幫助,感興趣的朋友可以了解下2020-08-08
Python內(nèi)置方法實(shí)現(xiàn)字符串的秘鑰加解密(推薦)
在Python中實(shí)現(xiàn)AES算法需要借助的第三方庫(kù)Crypto,其在各個(gè)操作系統(tǒng)上的安裝方法有些許復(fù)雜,所以對(duì)于簡(jiǎn)單的使用有點(diǎn)殺雞用牛刀的意思。這篇文章主要介紹了利用Python內(nèi)置方法實(shí)現(xiàn)字符串的秘鑰加解密,需要的朋友可以參考下2019-12-12
Python函數(shù)參數(shù)分類(lèi)使用與新特性詳細(xì)分析講解
在聲明函數(shù)的時(shí)候,一般會(huì)根據(jù)函數(shù)所要實(shí)現(xiàn)的功能來(lái)決定函數(shù)是否需要參數(shù)。在多數(shù)情況下,我們聲明的函數(shù)都會(huì)使用到參數(shù),這篇文章主要介紹了Python函數(shù)參數(shù)2023-01-01
最新PyCharm 2021.3.1永久激活碼(親測(cè)有效)
今天又有朋友反應(yīng)PyCharm2021提示激活碼過(guò)期了,下面再為大家分享一個(gè)2022年01月08日更新PyCharm2021最新激活碼,需要的朋友可以參考下2020-11-11
python中threading和queue庫(kù)實(shí)現(xiàn)多線程編程
這篇文章主要介紹了python中threading和queue庫(kù)實(shí)現(xiàn)多線程編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
將keras的h5模型轉(zhuǎn)換為tensorflow的pb模型操作
這篇文章主要介紹了將keras的h5模型轉(zhuǎn)換為tensorflow的pb模型操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫(xiě)for的方法
今天小編就為大家分享一篇tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫(xiě)for的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07

