更新時(shí)間:2022-05-13 09:09:14 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1327次
Lambda函數(shù)有什么作用?動(dòng)力節(jié)點(diǎn)小編來告訴大家。
lambda函數(shù)又稱匿名函數(shù),有些情況下我們不用顯式定義而采用匿名函數(shù)會(huì)讓代碼看上去更加簡(jiǎn)潔。
In [48]: ls = [1,2,3]
In [49]: print(list(map(lambda x:x*x, ls)))
[1, 4, 9]
上面的例子中,通過lambda函數(shù)使得我們可以在不顯式定義函數(shù)的情況下為map傳遞了一個(gè)函數(shù),這使得代碼看上去更為簡(jiǎn)潔直觀。
關(guān)鍵詞lambda定義了一個(gè)匿名函數(shù),冒號(hào)前面的是匿名函數(shù)的參數(shù)(當(dāng)需要多個(gè)參數(shù)時(shí),參數(shù)之間用逗號(hào),分割),冒號(hào)后的是一個(gè)表達(dá)式,lambda函數(shù)的返回內(nèi)容就是表達(dá)式的值。
lambda函數(shù)也是一個(gè)函數(shù)對(duì)象,所以也可以賦值給一個(gè)變量。
In [50]: lambda x,y:x*x+y*y
Out[50]: <function __main__.<lambda>>
In [51]: f1 = lambda x,y:x*x+y*y
In [52]: f1(1,2)
Out[52]: 5
lambda函數(shù)也作為返回值返回。
In [53]: def f():
...: x = 1
...: return lambda y:x*x+y*y # lambda函數(shù)引用了本地變量x,并且在函數(shù)f結(jié)束后保存了x的狀態(tài)
...:
In [54]: m = f()
In [55]: m(2)
Out[55]: 5
In [56]: m.__closure__ # 證明m是一個(gè)閉包
Out[56]: (<cell at 0x00000132044E9E28: int object at 0x0000000051F260C0>,)
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)