Python之lambda表示式

2021-09-25 06:24:55 字數 1633 閱讀 9497

lambda也稱之為匿名函式,與常規函式相比:常規函式def必須通過其函式名被呼叫,因此必須首先被定義。但是作為乙個表示式的lambda,返回的函式物件就不需要名字了。lambda專注於簡單的任務,而常規函式則負責更複雜的多行邏輯。lambda表示式的主體是只有一行的簡單表示式,並不能擴充套件成多行。

lambda表示式:lambda argument1, argument2,… argumentn : expression

需要注意:lambda是乙個表示式(expression),而不是乙個語句(statement)。表示式是一系列操作,比如 x * 2; x+y;等等。而語句是完成某個功能,比如x = x + 1; x = x + y;等等。因此,lambda可以用在一些常規函式def不能用的地方,比如列表內部,或者函式的引數(map、reduce、filter、sorted等這些函式都支援函式作為引數)。

talk is cheap, show me the code.

# 列表內部

l =[1,

2,3,

4,5]

new_l =[(

lambda x : x**2)

(x)for x in l]

print

(new_l)

# 輸出結果為:

# [1, 4, 9, 16, 25]

# 函式引數

l =[(1

,5,6

),(4

,0,1

),(2

,3,9

)]l.sort(

)print

(l)# 預設排序按照元組中第一位數字進行排序,按照從小到大順序。若倒序排,則可以設定reverse=true

# 輸出結果為:

# [(1, 5, 6), (2, 3, 9), (4, 0, 1)]

l.sort(key=

lambda x : x[1]

)# 按照元組中第二位數字進行排序

print

(l)# 輸出結果為:

# [(4, 0, 1), (2, 3, 9), (1, 5, 6)]

l =[3

,5,-

4,-1

,0,-

2,-6

]l.sort(key=

lambda x :

abs(x)

)# 按照元素的絕對值大小進行排序

print

(l)# 輸出結果為:

# [0, -1, -2, 3, -4, 5, -6]

d =

new_d =

sorted

(d.items(

), key=

lambda val : val[1]

, reverse=

true

)# 按照值進行從大到小排序

print

(new_d)

# 輸出結果為:

# [('ben', 30), ('mike', 10), ('lucy', 2)]

使用場景:程式中需要使用乙個函式完成乙個簡單的功能,並且該函式只呼叫一次。

python之lambda表示式

lambda的主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。lambda表示式是起到乙個函式速寫的作用。允許在 內嵌入乙個函式的定義。事例 建立匿名函式 g lambda x 2 x 1 冒號前面是變數,冒號後面是表示式 g 5 11 g lambda x,y x...

Python之lambda表示式

一 lambda表示式的概念和意義 lambda表示式有稱為隱函式,它的定義過程由形參和要返回的表示式組成,它相對於一般函式而言具有以下優勢 1 免去了函式定義的過程,變得更加精簡 2 省卻函式定義過程,不需要處心積慮的想出乙個符合函式功能的名字 二 lambda表示式的用法 格式 lambda關鍵...

Python 之 lambda 表示式

一 lambda的應用場景 二 lambda語法 三 快速入門 案例講解 四 lambda表示式的引數形式 五 lambda表示式的應用 如果乙個函式 有乙個返回值,並且只有一句 可以使用lambda簡化。說實話這定義簡單到離譜 返回頂部 lambda 引數列表 表示式注意 返回頂部需求1 函式 返...