日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python中l(wèi)ambda的用法及其與def的區(qū)別解析

系統(tǒng) 1905 0

python中的lambda通常是用來在python中創(chuàng)建匿名函數(shù)的,而用def創(chuàng)建的方法是有名稱的,除了從表面上的方法名不一樣外,python中的lambda還有如下幾點(diǎn)和def不一樣:

1. python lambda會(huì)創(chuàng)建一個(gè)函數(shù)對(duì)象,但不會(huì)把這個(gè)函數(shù)對(duì)象賦給一個(gè)標(biāo)識(shí)符,而def則會(huì)把函數(shù)對(duì)象賦值給一個(gè)變量。

2. python lambda它只是一個(gè)表達(dá)式,而def則是一個(gè)語(yǔ)句。

下面是python lambda的格式,看起來非常精簡(jiǎn)。

            
lambda x: print x


          

如果你在python 列表解析里用到python lambda,感覺意義并不是很大,因?yàn)閜ython lambda它會(huì)創(chuàng)建一個(gè)函數(shù)對(duì)象,但馬上又給丟棄了,因?yàn)槟銢]有使用它的返回值,即那個(gè)函數(shù)對(duì)象。也正是由于lambda只是一個(gè)表達(dá)式,它可以直接作為python 列表或python 字典的成員,比如:

            
info = [lamba a: a**3, lambda b: b**3]


          

在這個(gè)地方?jīng)]有辦法用def語(yǔ)句直接代替。因?yàn)閐ef是語(yǔ)句,不是表達(dá)式不能嵌套在里面,lambda表達(dá)式在“:”后只能有一個(gè)表達(dá)式。也就是說,在def中,用return可以返回的也可以放在lambda后面,不能用return返回的也不能定義在python lambda后面。因此,像if或for或print這種語(yǔ)句就不能用于lambda中,lambda一般只用來定義簡(jiǎn)單的函數(shù)。

下面舉幾個(gè)python lambda的例子:

1.單個(gè)參數(shù)的情況:

            
g = lambda x*2
print g(3)

          

運(yùn)行結(jié)果是6

2.多個(gè)參數(shù)的情況:

            
m = lambda x,y,z: (x-y)*z
print m(3,1,2)

          

運(yùn)行結(jié)果是4


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 南部县| 奉新县| 嘉善县| 财经| 城固县| 芒康县| 本溪| 东丽区| 铁岭县| 奉节县| 合作市| 盐亭县| 高平市| 巫溪县| 阳信县| 漯河市| 孙吴县| 庄浪县| 正阳县| 灌南县| 兴和县| 太和县| 长顺县| 东乡县| 崇文区| 武宣县| 噶尔县| 炉霍县| 虹口区| 恩施市| 磐安县| 长白| 东乡族自治县| 元阳县| 泽普县| 海伦市| 佛教| 崇仁县| 舟山市| 铅山县| 浦北县|