Python匿名函數(shù)詳情
1、匿名函數(shù)
在python中,除了一般使用def定義的函數(shù)外,還有一種使用lambda定義的匿名函數(shù)。這種函數(shù)可以用在任何普通函數(shù)可以使用的地方,但在定義時(shí)被嚴(yán)格限定為單一表達(dá)式。從語(yǔ)義上講,它只是普通函數(shù)的語(yǔ)法糖。
如果我們需要定義一個(gè)特別簡(jiǎn)單的函數(shù),例如
def add(a, b):
s = a + b
return s
這就出現(xiàn)問題了,這么優(yōu)雅的Python怎么可以出現(xiàn)這種難看的代碼呢,有沒有辦法可以將其簡(jiǎn)化為1行代碼呢?這么優(yōu)雅的Python肯定有辦法將其簡(jiǎn)化的方法??!這要用到匿名函數(shù)了。
python中使用 **lambda**關(guān)鍵字來創(chuàng)建匿名函數(shù)。
語(yǔ)法格式:
lambda [參數(shù)1 [,參數(shù)2,..參數(shù)n]]:表達(dá)式
lambda 參數(shù)列表:return [表達(dá)式] 變量
由于lambda返回的是函數(shù)對(duì)象(構(gòu)建的是一個(gè)函數(shù)對(duì)象),所以需要定義一個(gè)變量去接收
示例代碼如下:
news_add = lambda a, b: a + b
# 上面的那個(gè)等于
def news_add_old(a, b):
return a + b
x = news_add_old(5, 10)
y = news_add(5, 10) # 調(diào)用匿名函數(shù)
print(x, y) # 15 15
2、內(nèi)置函數(shù)使用
結(jié)合內(nèi)置函數(shù)使用:
list1 = [{"a": 10, "b": 20}, {"a": 20, "b": 20}, {"a": 50, "b": 20}, {"a": 6, "b": 20}, {"a": 9, "b": 20}]
# 那個(gè)列表中的a最大
max_value = max(list1, key=lambda x: x["a"])
print(max_value)
# 如果用普通的函數(shù)寫就多了幾行
def func(di):
return di["a"]
max_value = max(list1, key=func) # 這里不能加()不然就表示調(diào)用了
print(max_value)
將匿名函數(shù)當(dāng)做參數(shù):
def func(a, b, fun):
s = fun(a, b)
return s
z = func(5, 10, lambda a, b: a + b)
print(z) # 15
lambda可以省去定義函數(shù)的過程,讓代碼更加精簡(jiǎn),而且不用考慮命名問題,但是在PEP8規(guī)范里面是不推薦用lambda這種方式的。
到此這篇關(guān)于Python匿名函數(shù)詳情的文章就介紹到這了,更多相關(guān)Python匿名函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python pow函數(shù)的底層實(shí)現(xiàn)原理介紹
這篇文章主要介紹了python pow函數(shù)的底層實(shí)現(xiàn)原理介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python 運(yùn)行.py文件和交互式運(yùn)行代碼的區(qū)別詳解
這篇文章主要介紹了Python 運(yùn)行.py文件和交互式運(yùn)行代碼的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
使用Python實(shí)現(xiàn)自動(dòng)填入密碼功能
對(duì)于頻繁使用的軟件,每次都手動(dòng)輸入密碼可能會(huì)顯得繁瑣,所以本文主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)自動(dòng)填入密碼功能,需要的可以參考下2024-04-04
python3.9和pycharm的安裝教程并創(chuàng)建簡(jiǎn)單項(xiàng)目的步驟
這篇文章主要介紹了python3.9和pycharm的安裝教程并創(chuàng)建簡(jiǎn)單項(xiàng)目的步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

