python中的lambda關鍵字

2021-08-26 05:40:28 字數 1265 閱讀 6485

**:

lambda表示式,通常是在需要乙個函式,但是又不想費神去命名乙個函式的場合下使用,也就是指匿名函式

lambda所表示的匿名函式的內容應該是很簡單的,如果複雜的話,乾脆就重新定義乙個函式了,使用lambda就有點過於執拗了。

lambda就是用來定義乙個匿名函式的,如果還要給他繫結乙個名字的話,就會顯得有點畫蛇添足,通常是直接使用lambda函式。如下所示:

add = lambda x, y : x+y

add(1,2) # 結果為3

那麼到底要如何使用lambda表示式呢?

1、應用在函式式程式設計中

python提供了很多函式式程式設計的特性,如:map、reduce、filter、sorted等這些函式都支援函式作為引數,lambda函式就可以應用在函式式程式設計中。如下:

# 需求:將列表中的元素按照絕對值大小進行公升序排列

list1 = [3,5,-4,-1,0,-2,-6]

sorted(list1, key=lambda x: abs(x))

當然,也可以如下:

list1 = [3,5,-4,-1,0,-2,-6]

def get_abs(x):

return abs(x)

sorted(list1,key=get_abs)

只不過這種方式的**看起來不夠pythonic

2、應用在閉包中

def get_y(a,b):

return lambda x:ax+b

y1 = get_y(1,1)

y1(1) # 結果為2

當然,也可以用常規函式實現閉包,如下:

def get_y(a,b):

def func(x):

return ax+b

return func

y1 = get_y(1,1)

y1(1) # 結果為2

只不過這種方式顯得有點囉嗦。

那麼是不是任何情況下lambda函式都要比常規函式更清晰明了呢?

肯定不是。

python之禪中有這麼一句話:explicit is better than implicit(明了勝於晦澀),就是說那種方式更清晰就用哪一種方式,不要盲目的都使用lambda表示式。

Python中的lambda形式

python中的lambda語句被用來建立新的函式物件,並且在執行時返回它們。注意 1 下面的例子使用make repeater函式在執行時,通過lambda語句來建立新的函式物件,並且返回它。在這裡,lambda需要乙個引數,後面僅跟單個表示式作為函式體,而表示式的值被這個新建的函式返回。2 注意...

python中的lambda函式

lambda函式也叫匿名函式,即,函式沒有具體的名稱。先來看乙個最簡單例子 deff x returnx 2printf 4 python中使用lambda的話,寫成這樣 g lambdax x 2printg 4 lambda表示式在很多程式語言都有對應的實現。比如c varg x x 2cons...

python中的lambda函式

今天學習python裡面的高階函式map f list 的時候看見這樣一行 print map lambda x x 3,range 6 我已經知道 map函式的首個引數是乙個函式,後面的乙個或者多個list or tuple作為第乙個引數 也就是那個函式 的引數,以map的方式遍歷執行,並返回乙個...