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
python的lambda的語法
python 純文字檢視 複製 1g lambdax x 1 看一下執行的結果 g 1 2 g 2 3 所以可以這樣認為,lambda作為乙個表示式,定義了乙個匿名函式,上例的 x為入口引數,x 1為函式體,用函式來表示為 python 純文字檢視 複製 12 3 以下定義乙個函式 defg x a...
python的lambda的語法
python 純文字檢視 複製 1g lambdax x 1 看一下執行的結果 g 1 2 g 2 3 所以可以這樣認為,lambda作為乙個表示式,定義了乙個匿名函式,上例的 x為入口引數,x 1為函式體,用函式來表示為 python 純文字檢視 複製 12 3 以下定義乙個函式 defg x a...
lambda函式的用法
python中,lambda函式也叫匿名函式,及即沒有具體名稱的函式,它允許快速定義單行函式,類似於c語言的巨集,可以用在任何需要函式的地方。這區別於def定義的函式。1 def建立的方法是有名稱的,而lambda沒有。2 lambda會返回乙個函式物件,但這個物件不會賦給乙個識別符號,而def則會...