一、lambda的應用場景
二、lambda語法
三、快速入門 — 案例講解
四、lambda表示式的引數形式
五、lambda表示式的應用
如果乙個函式
有乙個返回值,並且只有一句**,可以使用lambda簡化。(說實話這定義簡單到離譜~)
返回頂部
lambda 引數列表 :表示式
注意:返回頂部需求1:函式 返回值100
def
fun():
return
100print
(fun)
# print
(fun())
# 100
# lambda 引數列表 :表示式
func =
lambda
:100
print
(func)
# at 0x0000029dd9769ca8> 返回的是乙個函式記憶體位址
print
(func())
# 100 上面說到func儲存的是乙個函式的記憶體位址,所以在這裡呼叫該函式(),輸出值
需求2: 實現兩數相加的和
def
two_sum
(a,b)
:return a+b
print
(two_sum(3,4))
sum
=lambda a,b : a+b
print
(sum(3
,4))
通過上述的案例我們可以看到lambda表示式的簡便性,可以將多行的函式縮短為一行,大大減少了儲存的記憶體。
注意:1.利用變數儲存的lambda表示式,實際上該變數儲存的就是lambda的記憶體位址,通過該返回值可以看出lambda表示式同樣是乙個函式,所以lambda表示式又稱為匿名函式,只是呈現方式更加簡便。既然是函式物件,在輸出其返回值的時候就需要我們對其進行呼叫 —變數名(函式名)()
。
返回頂部1.無引數型別
fun =
lambda
:100
print
(fun(
))
用於直接返回值直接呼叫函式即可!
2.乙個引數型別fun1 =
lambda a : a
print
(fun1(
'hello world!'))
/hello world!
3.兩個引數型別fun2 =
lambda a,b : a+b
print
(fun2(4,
5))//
9
4.預設引數型別fun3 =
lambda a, b, c=
100: a+b+c
print
(fun3(10,
20))//
130print
(fun3(10,
20,30))
//60
預設引數又稱為預設值,就是在呼叫函式的時候可以傳入對應的值,也可以不傳入。不傳入值則將使用定義的預設值;傳入,則將使用傳入的值。
5.可變引數型別: *argsfun4 =
lambda
*args : args
print
(fun4(10,
20,30)
)
*args接收的是不定長的未知引數,返回的型別為元組
6.可變引數型別:**kwargsfun5 =
lambda
**kwargs : kwargs
print
(fun5(name =
'python'
,age =20)
)print
(fun5(name =
'python'
,age =
20,*** =
'男')
)
接收不定長的關鍵字引數,返回的是乙個字典
返回頂部
fun =
lambda a,b : a if a>b else b
print
(fun(5,4))
students =[,
,]# 按照name公升序排列
students.sort(key=
lambda x:x[
'name'])
print
(students)
# 按照name降序排列
students.sort(key=
lambda x:x[
'name'
],reverse=
true
)print
(students)
# 按照age值公升序排列
返回頂部
python之lambda表示式
lambda的主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。lambda表示式是起到乙個函式速寫的作用。允許在 內嵌入乙個函式的定義。事例 建立匿名函式 g lambda x 2 x 1 冒號前面是變數,冒號後面是表示式 g 5 11 g lambda x,y x...
Python之lambda表示式
lambda也稱之為匿名函式,與常規函式相比 常規函式def必須通過其函式名被呼叫,因此必須首先被定義。但是作為乙個表示式的lambda,返回的函式物件就不需要名字了。lambda專注於簡單的任務,而常規函式則負責更複雜的多行邏輯。lambda表示式的主體是只有一行的簡單表示式,並不能擴充套件成多行...
Python之lambda表示式
一 lambda表示式的概念和意義 lambda表示式有稱為隱函式,它的定義過程由形參和要返回的表示式組成,它相對於一般函式而言具有以下優勢 1 免去了函式定義的過程,變得更加精簡 2 省卻函式定義過程,不需要處心積慮的想出乙個符合函式功能的名字 二 lambda表示式的用法 格式 lambda關鍵...