lambada表達(dá)式

lambda存在意義就是對(duì)簡(jiǎn)單函數(shù)的簡(jiǎn)潔表示。

#普通函數(shù)
def func(a):
    return a+1
print 'test1_func0:',func(1000)

#lambda表達(dá)式 
func = lambda a:a+1
image.png

匿名函數(shù)格式的說(shuō)明

函數(shù)名 = lambda 參數(shù) :返回值

#參數(shù)可以有多個(gè),用逗號(hào)隔開(kāi)
#匿名函數(shù)不管邏輯多復(fù)雜,只能寫(xiě)一行,且邏輯執(zhí)行結(jié)束后的內(nèi)容就是返回值
#返回值和正常的函數(shù)一樣可以是任意數(shù)據(jù)類(lèi)型

常見(jiàn)應(yīng)用

1.map函數(shù),我們使用map函數(shù)將會(huì)對(duì)列表中的所有元素進(jìn)行操作。map有兩個(gè)參數(shù)(函數(shù),列表),它會(huì)在內(nèi)部遍歷列表中的每一個(gè)元素,執(zhí)行傳遞過(guò)來(lái)的函數(shù)參數(shù)。在輸出到新列表中。

li = [11, 22, 33]
new_list = map(lambda a: a + 100, li) 
# 輸出:[111, 122, 133]


li = [11, 22, 33]
sl = [1, 2, 3]
new_list = map(lambda a, b: a + b, li, sl)
# 輸出:[12, 24, 36]

2.reduce函數(shù),對(duì)于序列內(nèi)所有元素進(jìn)行累計(jì)操作:

lst = [11,22,33]
func2 = reduce(lambda arg1,arg2:arg1+arg2,lst)
# 輸出:func2: 66

3.filter函數(shù),他可以根據(jù)條件對(duì)數(shù)據(jù)進(jìn)行過(guò)濾:

li = [11, 22, 33]
new_list = filter(lambda arg: arg > 22, li)
# 輸出:[33]

現(xiàn)有兩個(gè)元組(('a'),('b')),(('c'),('d')),請(qǐng)使用python中匿名函數(shù)生成列表[{'a':'c'},{'b':'d'}]

#答案一
test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
print(test(t1,t2))
#答案二
print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
#還可以這樣寫(xiě)
print([{i:j} for i,j in zip(t1,t2)])
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容