lambda的用法和語法


1、什么是lambda函數
ambda是匿名函數,使用lambda可節省函數名稱。
lambda argument_list: expression
lambda是Python預留的關鍵字,argument_list和 expression由用戶自定義。
冒號前是參數,可以有多個,用逗號隔開,冒號右邊是函數體的返回值
g = lambda x,y : x+y
print g(1,2)
與函數等同:
def f(x,y):
return x+y
print f(1,2)

2、lambda的特點:
1)、lambda有輸入和輸出。輸入是傳入到argument_list的值,輸出是函數計算出的值。
2)、lambda沒有函數名。絕大多數lambda函數作為一個參數傳給一個需要函數對象為參數的函數,比如map,reduce,filter等。

3、lambda應用
1)、filter()
filter()函數用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
語法: filter(function,iterable)
filter函數返回一個list,但與map函數不同的是,filter函數只能有一個iterable作為輸入.
返回值:最后將判斷函數返回 True 的元素放到新列表中。
a = [1, 2, 3, 4, 5, 6]
list(filter(lambda x : x % 2 == 0, a))
#Output: [2, 4, 6]
2)、map() 
map() 會根據提供的函數對指定序列做映射。
語法:map(function, iterable1, iterable2, ...)
返回值:第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
list(map(lambda x: x+2, [1,2,3,4]))
#Output:[3,4,5,6]
list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
#Output:[3, 7, 11, 15, 19]
3)、reduce()
reduce() 函數會對參數序列中元素進行累積。
語法: reduce(function,iterable[,initializer])
返回值:用傳給 reduce 中的函數 function(有兩個參數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個數據用 function 函數運算,返回最后得到一個結果。
reduce(lambda x, y: x+y, [1,2,3,4,5]) 
# Output:15


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM