例子
a = lambda x, y: x + y # 定義一個(gè)lambda函數(shù)并賦值給a
print(a(3, 4)) # 調(diào)用函數(shù)并打印
print(type(a)) # 查看對(duì)象的類(lèi)型
運(yùn)行結(jié)果為:
7
<class 'function'>
上面這個(gè)例子就是個(gè)簡(jiǎn)單的lambda函數(shù)??梢钥闯鏊鸵话愠6x的函數(shù)長(zhǎng)得還是很不一樣的。但是,通過(guò)它的調(diào)用方法和類(lèi)型檢查還是能夠看出它確實(shí)是一個(gè)函數(shù)的。
定義
lambda函數(shù)也叫匿名函數(shù),它不需要為函數(shù)起名字。從上面的例子可以看出,lambda函數(shù)由三部分構(gòu)成。
首先是lambda標(biāo)記,說(shuō)明這是個(gè)lambda函數(shù)。
參數(shù)部分。它跟在lambda標(biāo)記后邊,中間用空格隔開(kāi)。參數(shù)可以是一個(gè),也可以是多個(gè)。多個(gè)參數(shù)用逗號(hào)隔開(kāi)。參數(shù)用冒號(hào)和右邊的表達(dá)式分開(kāi)。
表達(dá)式部分。冒號(hào)的右邊為lambda函數(shù)的表達(dá)式。lambda函數(shù)會(huì)自動(dòng)返回這個(gè)表達(dá)式的結(jié)果。
作用
由于lambda函數(shù)這種簡(jiǎn)單的定義方式,可以使代碼變得更簡(jiǎn)潔。同時(shí)也是由于這種定義方式,lambda函數(shù)只能寫(xiě)一些簡(jiǎn)單的函數(shù)。
lambda函數(shù)也叫匿名函數(shù),所以lambda函數(shù)經(jīng)常會(huì)定義一些不用多次調(diào)用的簡(jiǎn)單函數(shù)。
lambda函數(shù)經(jīng)常作為filter函數(shù)和map函數(shù)的參數(shù)使用。