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 函式 返...