Python中的Lambda表示式小析

2021-07-03 03:19:23 字數 1573 閱讀 9709

lambda表示式在python中經常使用到,在此總結下lambda表示式的常用方法。

首先,要明白lambda表達在python中是作為乙個匿名函式的構造器而存在。其次,要明白lambda表示式的常用場景是lambda表示式對應函式的使用次數非常有限(因此,沒有必要專門定義乙個非匿名函式),同時保證了**的簡潔性。

最簡單的乙個lambda表示式例子和對應的非匿名函式:

f = lambda x: x + 1

print ( f(1) )

def h (x):

return x + 1

print ( h(1) )

帶有乙個引數的lambda表示式和對應的非匿名函式:

def f(n):

return lambda x: x / n

print ( f(1)(2) ) # n=1; x=2

def g(n):

return lambda x: x / n

k = g(1) # n=1

print ( (k(2)) ) # x=2

def h(x,n):

return x / n

print ( h(2,1) ) #x=2; n=1

lambda匿名函式經常被用到filter(), map(), reduce(), sorted()函式中,這些函式的共同點是均需要函式型的引數,lambda表示式正好適用。以sorted函式為例,其key引數指定了乙個負責從帶排序的list中抽取comparison key的函式。

club_ranking = [

('arsenal', 3),

('chelsea', 1),

('manchester city', 2),

('manchester united', 4),

]club_sorted = sorted(club_ranking, key = lambda x: x[1]) # sort by ranking

print (club_sorted)

'''

在python3.4中需要使用functools將cmp函式轉化為key函式

'''import functools

club_ranking = [

('arsenal', 3),

('chelsea', 1),

('manchester city', 2),

('manchester united', 4),

]def get_ranking( x, y ): #define cmp function

return x[1] - y[1]

club_sorted = sorted(club_ranking, key = functools.cmp_to_key(get_ranking)) # sort by ranking

print (club_sorted)

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的方式遍歷執行,並返回乙個...