python 的lambda匿名函式

2022-04-29 11:00:16 字數 1376 閱讀 1611

先看乙個例子

list(map(lambda x:x*x,[1,2,3,4,5]))

關鍵字lambda 表示匿名函式,冒號前面的x表示函式引數,冒號後面是表示式

如果是判斷表示式,則和filter配合使用,如果是非判斷表示式,可以配合reduce或者map使用

#

判斷表示式

list(filter(lambda x:x%2==1, range(1, 20)))

#非判斷表示式

list(map(lambda x:x*x,[1,2,3,4,5]))

lambda可以作為函式的返回值

def

f(x,y):

return

lambda:x*x+y*y

g = lambda x, y, z : (x + y) **z

print(g(1,2,2)) #

輸出9

lambda也可以在表示式裡面使用if-else

比如if elif else

if

條件1:

語句1elif

條件2:

語句2else

: 語句3

我們可以使用lambda

lambda x: 語句1 if 條件1 else 語句2 if 條件2 else

語句3

#實際上是下面這樣表達

lambda x: 語句1 if 條件1 else ( 語句2 if 條件2 else 語句3 )

也可以使用字典

di = 

f = lambda x: di[x]

lambda 接受有多個引數的自定義函式

def

score(person_info,finance_info,credit_info,act_info):

xbeta = person_info * ( 3.49460978) \

+ finance_info * ( 11.40051582) \

+ credit_info * (2.45541981) \

+ act_info * ( -1.68676079) \

-0.34484897score = 650-34* (xbeta)/math.log(2)

return

score

val[

'score

x :

score(x.person_info,x.finance_info,x.

credit_info,x.act_info) ,axis=1)

Python的lambda匿名函式

lambda函式也叫匿名函式,即,函式沒有具體的名稱。先來看乙個最簡單例子 def f x return x 2 print f 4 python中使用lambda的話,寫成這樣 g lambda x x 2 print g 4 lambda表示式在很多程式語言都有對應的實現。比如c var g x...

Python匿名函式lambda

lambda是匿名函式,形式為 lambda x x x等價於 def func x return x x其中 x 相當於函式引數,表示式 x x 相當於返回值,所以lambda不需要也不能有return.匿名函式本身是乙個函式物件,也可以把匿名函式賦值給乙個變數,再利用變數來呼叫該函式.匿名函式適...

Python 匿名函式lambda

今天看yate內嵌python的例子,竟然又一次忘記了lambda到底是個什麼東東,too faint!特標記如下。例子 python view plain copy defroute yate defon route route yate.onmsg call.route lambda m m c...