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