Python學習 lambda表示式

2021-10-02 10:50:04 字數 1507 閱讀 3719

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內建的mapreducefilter函式,用少量**完成複雜的功能,也體現了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...