前言:
lambda函數(shù)也叫匿名函數(shù)食店,即渣淤,函數(shù)沒有具體的名稱。
一吉嫩、基礎(chǔ)
lambda語句構(gòu)建的其實是一個函數(shù)對象价认。匿名函數(shù)有個限制,就是只能有一個表達式自娩,不用寫return用踩,返回值就是該表達式的結(jié)果。
lambda(a,b: a+b)
#關(guān)鍵字lambda表示匿名函數(shù)忙迁,冒號前是參數(shù)脐彩,可以有多個,用逗號隔開姊扔,冒號右邊的返回值惠奸。
lambda優(yōu)點:
1、使用Python寫一些執(zhí)行腳本時恰梢,使用lambda可以省去定義函數(shù)的過程佛南,讓代碼更加精簡。
2嵌言、對于一些抽象的嗅回,不會別的地方再復(fù)用的函數(shù),有時候給函數(shù)起個名字也是個難題摧茴,使用lambda不需要考慮命名的問題绵载。
3、使用lambda在某些時候讓代碼更容易理解。
舉一個簡單的例子:
def f(x):
return x**2
print f(4)
Python中使用lambda的話娃豹,寫成這樣
g = lambda x : x**2
print g(4)
二猜惋、進階-內(nèi)置函數(shù)
1、map()
遍歷序列培愁,對序列中每個元素進行操作著摔,最終獲取新的序列。
li = [11, 22, 33]
sl = [1, 2, 3]
new_list = map(lambda a, b: a + b, li, sl)
print(list(new_list))
結(jié)果輸出為:
>>>[12,24,36]
2定续、reduce()
對于序列內(nèi)所有元素進行累計操作
from functools import reduce
li = [11,22,33]
result = reduce(lambda a,b:a+b,li)
# reduce的第一個參數(shù)谍咆,函數(shù)必須要有兩個參數(shù)
# reduce的第二個參數(shù),要循環(huán)的序列
# reduce的第三個參數(shù)私股,初始值
print(result)
輸出結(jié)果:
>>>66
3摹察、filter()
對于序列中的元素進行篩選,最終獲取符合條件的序列
li = [11,22,33]
new_list = filter(lambda a:a>22,li)
print(list(new_list))
#filter第一個參數(shù)為空倡鲸,將獲取原來序列
輸出結(jié)果:
>>>[33]
以上~