1、先來看一個(gè)函數(shù):
def sum(x,y):
return x+y
用lambda來實(shí)現(xiàn):
p = lambda x,y:x+y
print(p(1,2))
2、傳入一個(gè)參數(shù)的lambda函數(shù)
a=lambda x:x*x
print(a(2)) # 注意:這里直接a(2)可以執(zhí)行,但沒有輸出的,因?yàn)闆]有print
3、多個(gè)參數(shù)的lambda形式:
a = lambda x,y,z:x*y*z
print(a(5,6,7))
匿名函數(shù)lambda:是指一類無需定義標(biāo)識(shí)符(函數(shù)名)的函數(shù)或子程序。
lambda 函數(shù)可以接收任意多個(gè)參數(shù) (包括可選參數(shù)) 并且返回單個(gè)表達(dá)式的值。
要點(diǎn):
1,lambda 函數(shù)不能包含命令,
2,包含的表達(dá)式不能超過一個(gè)。
說明:一定非要使用lambda函數(shù);任何能夠使用它們的地方,都可以定義一個(gè)單獨(dú)的普通函數(shù)來進(jìn)行替換。我將它們用在需要封裝特殊的、非重用代碼上,避免令我的代碼充斥著大量單行函數(shù)。
lambda匿名函數(shù)的格式:冒號(hào)前是參數(shù),可以有多個(gè),用逗號(hào)隔開,冒號(hào)右邊的為表達(dá)式。其實(shí)lambda返回值是一個(gè)函數(shù)的地址,也就是函數(shù)對(duì)象。
a=lambda x:x*x
print(a)
print(a(2))
輸出:
at 0x000002308ABE3E18>
27
使用lambda幫助排序:
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
result = sorted(student_tuples, key=lambda student: student[2])
print(result)
輸出:
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
