溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python匿名函數(shù)怎么使用

發(fā)布時(shí)間:2020-09-24 13:54:48 來源:億速云 閱讀:127 作者:Leah 欄目:編程語言

這篇文章運(yùn)用簡單易懂的例子給大家介紹Python匿名函數(shù)怎么使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

定義

匿名函數(shù)指一類無須定義標(biāo)識符的函數(shù)或子程序。Python用lambda語法定義匿名函數(shù),只需用表達(dá)式而無需申明。

lambda語法的定義如下:

lambda [arg1 [,arg2, ... argN]] : expression

除了沒有函數(shù)名,其語法與如下函數(shù)的定義相同。

匿名函數(shù)特點(diǎn)

1.不用取名稱,因?yàn)榻o函數(shù)取名是比較頭疼的一件事,特別是函數(shù)比較多的時(shí)候  

2.可以直接在使用的地方定義,如果需要修改,直接找到修改即可,方便以后代碼的維護(hù)工作  

3.語法結(jié)構(gòu)簡單,不用使用def 函數(shù)名(參數(shù)名):這種方式定義,直接使用lambda 參數(shù):返回值 定義即可

lambda這個(gè)名稱來自于LISP,而LISP則是從lambda calculus(一種符號邏輯形式)取這個(gè)名稱的。在Python中,lambda作為一個(gè)關(guān)鍵字,作為引入表達(dá)式的語法。想比較def函數(shù),lambda是單一的表達(dá)式,而不是語句塊!你僅能夠在lambda中封裝有限的業(yè)務(wù)邏輯,這樣設(shè)計(jì)的目的:讓lambda純粹為了編寫簡單的函數(shù)而設(shè)計(jì),def則專注于處理更大的業(yè)務(wù)。

與普通函數(shù)差異

普通函數(shù):

#普通函數(shù),帶倆參數(shù)的寫法  
def add(x,y):  
    return x*y  
rs = add(10,20)  
print(rs)

匿名函數(shù)

#帶有倆參數(shù)的匿名函數(shù)  
b = lambda x,y:x*y  
rs = b(10,20)  
print(rs)

實(shí)例

#計(jì)算存放100個(gè)數(shù)字的列表的每一個(gè)數(shù)字的平方,返回一個(gè)新的列表  
print(list(map(lambda x:x*x,[x for x in range(100)])))

執(zhí)行結(jié)果

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 
676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116,
 2209, 2304, 2401, 2500, 2601, 2704, 2809, 2916, 3025, 3136, 3249, 3364, 3481, 3600, 3721, 3844, 3969, 4096, 4225, 
 4356, 4489, 4624, 4761, 4900, 5041, 5184, 5329, 5476, 5625, 5776, 5929, 6084, 6241, 6400, 6561, 6724, 6889, 7056, 
 7225, 7396, 7569, 7744, 7921, 8100, 8281, 8464, 8649, 8836, 9025, 9216, 9409, 9604, 9801]

關(guān)于Python匿名函數(shù)怎么使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI