最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中的lambda函數(shù)用法指南

 更新時間:2023年01月06日 11:53:32   作者:柳小蔥  
Lambda函數(shù)是Python中的匿名函數(shù),下面這篇文章主要給大家介紹了關(guān)于python中l(wèi)ambda函數(shù)用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

最近碰見太多次lambda函數(shù)了,那就來詳細(xì)解釋一下該函數(shù)。

lambda函數(shù)

我們先對lambda函數(shù)進(jìn)行一個簡單的介紹

  • lambda函數(shù)是一種匿名函數(shù),即沒有名字的函數(shù)
  • 使用lambda保留字定義,函數(shù)名是返回結(jié)果
  • lambda函數(shù)的函數(shù)體只是一個表達(dá)式
  • lambda函數(shù)用于定義簡單的、能夠在一行內(nèi)表示的函數(shù)
  • lambda表達(dá)式” : “后面,只能有一個表達(dá)式,def則可以有多個。
  • lambda一般用來定義簡單的函數(shù),而def可以定義復(fù)雜的函數(shù)

先來看一個例子:

g=lambda x:x+1
print(g(1))
#結(jié)果為2

可以這樣認(rèn)為,lambda作為一個表達(dá)式,定義了一個匿名函數(shù)。等價于:

def g(x):
    return x+1

非常容易理解,在這里lambda簡化了函數(shù)定義的書寫形式。是代碼更為簡潔,但是使用函數(shù)的定義方式更為直觀,易理解。

可傳入多個參數(shù)

g=lambda x,y,z:x+y+z*2
print(g(1,2,3))
#結(jié)果為9

#也可直接傳遞參數(shù)
(lambda x:x**2)(3)
#結(jié)果為9

lambda表達(dá)式會返回一個函數(shù)對象,如果沒有變量接受這個返回值的話,它很快就會被丟棄。也正是由于lambda只是一個表達(dá)式,所以它可以直接作為list和dict的成員

list_a = [lambda a: a**3, lambda b: b**3]
print(type(list_a[0]))

結(jié)果為:

與map函數(shù)進(jìn)行使用

a = map(lambda x:x**2,range(5))
print(list(a))

結(jié)果為:

補充:一個爭議

事實上,關(guān)于lambda在Python社區(qū)是存在爭議的。Python程序員對于到底要不要使用lambda意見不一致。

  • 支持方認(rèn)為使用lambda編寫的代碼更緊湊,更“pythonic”。
  • 反對方認(rèn)為,lambda函數(shù)能夠支持的功能十分有限,其不支持多分支程序if...elif...else...和異常處理程序try ...except...。并且,lambda函數(shù)的功能被隱藏,對于編寫代碼之外的人員來說,理解lambda代碼需要耗費一定的理解成本。他們認(rèn)為,使用for循環(huán)等來替代lambda是一種更加直白的編碼風(fēng)格。

關(guān)于lambda的爭執(zhí)沒有定論。在實際中,是否使用lambda編程取決于程序員的個人喜好。

總結(jié)

lambda函數(shù)使代碼結(jié)構(gòu)更加緊湊,但卻使代碼看起來不是那么清晰。

參考資料

https://zhuanlan.zhihu.com/p/80960485

到此這篇關(guān)于python中的lambda函數(shù)用法的文章就介紹到這了,更多相關(guān)python中l(wèi)ambda函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

东兴市| 安福县| 游戏| 乾安县| 交口县| 兴国县| 乐陵市| 祁东县| 哈密市| 康乐县| 米脂县| 南投市| 五大连池市| 夏河县| 依兰县| 多伦县| 万宁市| 郑州市| 宁国市| 赣州市| 巴中市| 普洱| 建水县| 青海省| 洱源县| 崇左市| 英山县| 台中市| 浦北县| 灵台县| 天镇县| 陇西县| 贵州省| 乐平市| 崇信县| 望江县| 台东市| 东辽县| 礼泉县| 乌什县| 大英县|