lambda表示式,用來建立匿名函式
lambda
《引數》
:《返回值》
lambda expression1 : expression2
# 等價於
deffunc
(expression1)
:return expression2
還可以用來建立巢狀函式
def
func
(x):
return
lambda a:a+x
f = func(5)
# 現在f是乙個lambda物件
print
(f(3))
# 8
再多幾層也可以
def
fun(a)
:return
lambda b:
lambda c:
100*a+
10*b+c
f1 = fun(1)
f2 = f1(2)
print
(f2(3)
)# 123
應用
lambda的特性,使得它可以配合python內建的map
,reduce
,filter
函式,用少量**完成複雜的功能,也體現了python的哲學
map()函式將第二個引數提供可迭代資料分別傳給第乙個引數的函式處理
# 計算乙個列表所有數字的平方
l =[1,
2,3,
4,5]
print
(list
(map
(lambda x: x * x, l)))
# [1, 4, 9, 16, 25]
reduce()函式接收引數型別和map函式相同,但是函式要接收兩個引數,巢狀執行整個可迭代資料
redece(fun,[1
,2,3
,4])
= fun(fun(fun(1,
2),3
),4)
# 計算整個列表的積
l =[1,
2,3,
4,5]
print
(reduce
(lambda a, b: a * b, l)
)# 120
filter()函式用於篩選,第乙個引數的函式執行第二個引數內的值,為真留下
# 篩選整個列表內3的倍數
l =[1,
2,3,
4,5,
6,7,
8,9]
print
(list
(filter
(lambda x:
not x %
3, l)))
# [3, 6, 9]
python學習筆記 lambda
之前用過lambda,但是雖然用過卻並沒有仔細的想過lambda,今天就簡單的說說lambda。還是遵循我固有的三板斧 what,how,why。1 lambda是什麼,以及怎麼用 lambda是乙個匿名函式,用法如下。a lambda x x 1上式等價與 def a x reurn x 1下面的...
Python基礎學習篇 lambda
python lambda是在python中使用lambda來建立匿名函式,而用def建立的方法是有名稱的,除了從表面上的方法名不一樣外,python lambda還有哪些和def不一樣呢?1 python lambda會建立乙個函式物件,但不會把這個函式物件賦給乙個識別符號,而def則會把函式物件...
Python基礎05 函式與lambda表示式
函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。1 定義乙個函式 定義函式的規則 語法 def functionname parameters 函式 文件字串 function suite return expression 例項 呼叫 def sum x,y z x y retur...