第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

被Python的匿名函數(shù)lambda搞得一頭霧水,該怎么處理?

被Python的匿名函數(shù)lambda搞得一頭霧水,該怎么處理?

慕仙森 2023-04-14 22:13:00
一直都是用def來(lái)創(chuàng)建函數(shù)的,最近又看到很多l(xiāng)ambda來(lái)申明函數(shù)的,不知道這二者的用途有什么區(qū)別。def創(chuàng)建的函數(shù)是可以多次調(diào)用的,而lambda卻不可以,那么,為什么有時(shí)候要使用lambda呢?他創(chuàng)建的函數(shù)而且很難讀懂耶。
查看完整描述

2 回答

?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊

lambda函數(shù)一般是在函數(shù)式編程中使用的。通常學(xué)習(xí)的C/C++/Java等等都是過(guò)程式編程,所以不常接觸lambda函數(shù)。

其實(shí)這貨在C++中已經(jīng)有所運(yùn)用了,如果對(duì)stl的迭代器比較熟悉的話(huà),就會(huì)知道里頭的foreach等函數(shù),需要給一個(gè)函數(shù),這對(duì)于C/C++這種古老的語(yǔ)言來(lái)說(shuō)比較痛苦,一般是在主函數(shù)外再寫(xiě)一個(gè)函數(shù),然后傳入函數(shù)指針,看起來(lái)非常不直觀。boosts用一些特殊的語(yǔ)法技巧實(shí)現(xiàn)了C++的lambda。

舉個(gè)栗子,對(duì)于這樣一個(gè)list L,求L中大于3的元素集合

L = [1, 2, 3, 4, 5]

對(duì)于過(guò)程式編程,通常會(huì)這么寫(xiě)

L3 = []for i in L:    if i > 3:
        L3.append(i)

而對(duì)于函數(shù)式變成,只需要給filter函數(shù)一個(gè)判斷函數(shù)就行了

def greater_than_3(x):    return x > 3L3 = filter(greater_than_3, L)

由于這個(gè)判斷函數(shù)非常簡(jiǎn)單,用def寫(xiě)起來(lái)太累贅了,所以用lambda來(lái)實(shí)現(xiàn)就非常簡(jiǎn)潔、易懂

L3 = filter(lambda x: x > 3, L)

這是個(gè)很簡(jiǎn)單的例子,可以看出lambda的好處。lambda函數(shù)更常用在map和reduce兩個(gè)函數(shù)中。

查看完整回答
反對(duì) 回復(fù) 2023-04-18
?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊

基本上lambda適用于一些臨時(shí)性的,小巧的函數(shù)。比如作為一些參數(shù)傳遞給其他函數(shù)(類(lèi)似callback)
比如itertools模塊的ifilter函數(shù)

def ifilter(predicate, iterable):    # ifilter(lambda x: x%2, range(10)) --> 1 3 5 7 9
    if predicate is None:
        predicate = bool
    for x in iterable:        if predicate(x):            yield x

這里的predicate就可以傳遞一個(gè)lambda函數(shù)進(jìn)去,如果專(zhuān)門(mén)為此用一個(gè)def來(lái)定義函數(shù),顯得代碼不夠簡(jiǎn)介小巧,而lambda正合此意


查看完整回答
反對(duì) 回復(fù) 2023-04-18
  • 2 回答
  • 0 關(guān)注
  • 142 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)