Python lambda和Python def區(qū)別分析
Python支持一種有趣的語(yǔ)法,它允許你快速定義單行的最小函數(shù)。這些叫做lambda的函數(shù),是從Lisp借用來(lái)的,可以用在任何需要函數(shù)的地方。
lambda的語(yǔ)法時(shí)常會(huì)使人感到困惑,lambda是什么,為什么要使用lambda,是不是必須使用lambda?
>>> def f(x): ... return x+2 ... >>> f(1) 3 >>> f = lambda x:x+2 >>> f(1) 3 >>> (lambda x:x+2)(1) 3
Python def和Python lambda它們有相似點(diǎn)也有不同點(diǎn)。
相似點(diǎn): 這兩個(gè)很重要的相似點(diǎn)就是都可以定義一些固定的方法或者是流程,供給程序來(lái)調(diào)用,比如上面例子中定義一個(gè)變量加2的方法。 輸出的結(jié)果都是3,如果你要完成一些固定的流程的話,上面幾種你都可以任意選擇。
上面是相同點(diǎn),那么有那些不同點(diǎn)?
它們的主要不同點(diǎn)是Python def是語(yǔ)句而Python lambda是表達(dá)式。lambda簡(jiǎn)化了函數(shù)定義的書(shū)寫(xiě)形式,使代碼更為簡(jiǎn)潔。但是使用函數(shù)的定義方式更為直觀,易理解。
Python里面語(yǔ)句是可以嵌套的,比如你需要根據(jù)某個(gè)條件來(lái)定義方法,那只能用def。用lambda就會(huì)報(bào)錯(cuò)。
>>> if a==1: ... def info(): ... print '1'*5 ... else: ... def info2(): ... print 'info2'
而有的時(shí)候你需要在python表達(dá)式里操作的時(shí)候,那需要用到表達(dá)式嵌套,這個(gè)時(shí)候Python def就不能得到你想要的結(jié)果,那只能用Python lambda,如下例子:
輸出e字符串出現(xiàn)頻率最高的字母:
>>> str='www.linuxeye.com linuxeye.com'
>>> L = ([(i,str.count(i)) for i in set(str)])
[(' ', 1), ('c', 2), ('e', 4), ('i', 2), ('m', 2), ('l', 2), ('o', 2), ('n', 2), ('u', 2), ('w', 3), ('y', 2), ('x', 2), ('.', 3)]
>>> L.sort(key = lambda k:k[1],reverse = True)
>>> print L[0][0]
e
- python中defaultdict的用法詳解
- 簡(jiǎn)介Python的collections模塊中defaultdict類型的用法
- Python標(biāo)準(zhǔn)庫(kù)defaultdict模塊使用示例
- Python中的defaultdict模塊和namedtuple模塊的簡(jiǎn)單入門(mén)指南
- Python使用defaultdict讀取文件各列的方法
- Python中的defaultdict與__missing__()使用介紹
- 深入解析Python中的lambda表達(dá)式的用法
- python基礎(chǔ)教程之lambda表達(dá)式使用方法
- python中的lambda表達(dá)式用法詳解
- 簡(jiǎn)單介紹Python中的filter和lambda函數(shù)的使用
- Python中 Lambda表達(dá)式全面解析
- Python中defaultdict與lambda表達(dá)式用法實(shí)例小結(jié)
相關(guān)文章
Python?Flask實(shí)現(xiàn)快速構(gòu)建Web應(yīng)用的方法詳解
Flask是一個(gè)輕量級(jí)的Web服務(wù)器網(wǎng)關(guān)接口(WSGI)web應(yīng)用框架,本文將和大家一起詳細(xì)探討一下Python?Flask?Web服務(wù),需要的小伙伴可以學(xué)習(xí)一下2023-06-06
關(guān)于python爬蟲(chóng)應(yīng)用urllib庫(kù)作用分析
這篇文章主要介紹了關(guān)于python爬蟲(chóng)應(yīng)用urllib庫(kù)作用分析,想要進(jìn)行python爬蟲(chóng)首先我們需要先將網(wǎng)頁(yè)上面的信息給獲取下來(lái),這就是utllib庫(kù)的作用,有需要的朋友可以借鑒參考下2021-09-09
Flask框架學(xué)習(xí)筆記之路由和反向路由詳解【圖文與實(shí)例】
這篇文章主要介紹了Flask框架學(xué)習(xí)筆記之路由和反向路由,結(jié)合圖文與實(shí)例形式詳細(xì)分析了flask框架中路由與反向路由相關(guān)概念、原理、用法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-08-08
Python如何獲取HTTP請(qǐng)求的Response Body
這篇文章主要介紹了在Python中如何獲取HTTP請(qǐng)求的響應(yīng)體,包括使用內(nèi)置的urllib庫(kù)、第三方庫(kù)requests以及一些高級(jí)用法,有需要的小伙伴可以了解下2024-11-11
python timestamp和datetime之間轉(zhuǎn)換詳解
這篇文章主要為大家詳細(xì)介紹了python timestamp和datetime之間轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
matplotlib實(shí)戰(zhàn)之餅圖繪制詳解
餅圖,或稱餅狀圖,是一個(gè)劃分為幾個(gè)扇形的圓形統(tǒng)計(jì)圖表,這篇文章主要為大家詳細(xì)介紹了如何使用Matplotlib繪制餅圖,需要的小伙伴可以參考下2023-08-08
Python第三方常用模塊openpyxl的簡(jiǎn)單介紹
openpyxl模塊是一個(gè)讀寫(xiě)Excel?2010文檔的Python庫(kù),如果要處理更早格式的Excel文檔,需要用到額外的庫(kù),openpyxl是一個(gè)比較綜合的工具,能夠同時(shí)讀取和修改Excel文檔,下面這篇文章主要給大家介紹了關(guān)于Python第三方常用模塊openpyxl的相關(guān)資料,需要的朋友可以參考下2022-08-08
python 三邊測(cè)量定位的實(shí)現(xiàn)代碼
這篇文章主要介紹了python 三邊測(cè)量定位的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04

