lambda是匿名函數(shù)。前面我們提到python高階函數(shù),學(xué)習(xí)了map,reduce,filter等python內(nèi)置函數(shù)的用法。因?yàn)楦唠A函數(shù)使用函數(shù)作為參數(shù),有時(shí),我們需要一個(gè)簡(jiǎn)單的函數(shù)表達(dá)式作為參數(shù)傳遞到高階函數(shù)中,又希望代碼盡可能簡(jiǎn)介,這時(shí)候不需要定義函數(shù)名,lambda就有了它發(fā)揮的空間了。
add = lambda x,y: x+y
add(1,2) # 結(jié)果為3
在舉個(gè)例子,之前我們學(xué)習(xí)sorted對(duì)list內(nèi)進(jìn)行絕對(duì)值排序
list1 = [1,-2,3,4]
sorted(listed, key=abs)
使用lambda可以改寫成這樣
list1=[1,-2,3,4]
sorted(list1, key=lambda x: abs(x)
使用lambda改寫過(guò)后能更好的幫助我們理解高階函數(shù)。
還有一個(gè)例子,對(duì)一下list進(jìn)行排序
list1= [(1,"hello"), (2, "world")]
sorted( list1, key=lambda x: x[0]
#我們可以根據(jù)第一個(gè)或者第二個(gè)元素進(jìn)行排序