九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Python:lambda表達(dá)式的兩種應(yīng)用場(chǎng)景

題圖:megan-lewis-601414-unsplash


01

lambda表達(dá)式


python書寫簡(jiǎn)單,功能強(qiáng)大, 迅速發(fā)展成為 AI ,深度學(xué)習(xí)的主要語言。介紹Python中的lambda表達(dá)式,注意到,它只是一個(gè)表達(dá)式,不是語句啊。


lambda的語法規(guī)則: 一個(gè)或多個(gè)參數(shù)以冒號(hào)終止輸入?yún)?shù),這些參數(shù)可以理解為有名函數(shù)原型的輸入?yún)?shù),以后是一個(gè)表達(dá)式,相當(dāng)于有名函數(shù)的函數(shù)體部分。lambda的函數(shù)體部分,是作為返回值輸出部分。


02

場(chǎng)景1:map 和 reduce

Python 中的 map 和 reduce,再結(jié)合 lambda表達(dá)式的話,使用起來會(huì)更加高效,如下所示:


def sum(mylist):

    return reduce(lambda x, y: 2*x + 1*y, mylist)


可以看到兩個(gè)輸入?yún)?shù) x, y , 返回為 2*x + y ,通過這樣對(duì) mylist 的元素完成化簡(jiǎn)操作。


03

場(chǎng)景2: lambda 和 list 結(jié)合使用

這個(gè)場(chǎng)景在面試中經(jīng)常被問到,如下所示:

li = [lambda :x for x in range(10)]


得到一個(gè) lambda 的list,打印 li[0]() 會(huì)得到什么,注意這種調(diào)用方法,因?yàn)槭菙?shù)組,先拿第一個(gè)元素,li[0],后面的括號(hào)表示調(diào)用lambda表達(dá)式。打印的結(jié)果為 0 嗎? 


NO!是 9


lambda表達(dá)式不會(huì)形成對(duì)函數(shù)體內(nèi)變量的記憶,只記錄最后一個(gè)狀態(tài)。 


那么如果lambda的入?yún)⒅袔в衳, 會(huì)得到我們想要的結(jié)果0 嗎?


li = [lambda x :x for x in range(10)]

res = li[0](0)

print(res)


輸出:0


因此,需要注意區(qū)分這兩種寫法的不同,記得這個(gè)區(qū)別,在一次新浪面試中,曾經(jīng)被問到。希望對(duì)大家有用。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python基礎(chǔ)——函數(shù)的基本使用_python的基本函數(shù)使用
從C#到Python -- 3 函數(shù)及其編程
python常見單詞在手,編程入門不愁
說說Python中的lambda表達(dá)式?
通過C++學(xué)習(xí)Python
理解lambda表達(dá)式,為什么用它?
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服