標籤:title python 代碼 lambda mat 返回 hex lan 匿名
1 文法
my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1
arg1、arg2:參數
arg1 + arg2 + 1 :運算式
2 描述
匿名函數不需要return來傳回值,運算式本身結果就是傳回值。
lambda 僅簡潔了代碼,並不會提高程式運行效率
如果可以用 for...in...if 來完成的,最好不使用匿名函數lambda
使用lambda時,函數內不要包含迴圈、嵌套;如果存在,則最好使用def函數來完成,這樣的代碼可讀性和複用性均較高
lambda用來編寫簡單的函數,而def用來處理更強大的任務。
3 樣本3.1 無參數的匿名函數
>>> a = lambda:5>>> a<function <lambda> at 0x7f20f53be2f0>>>> a()5>>>
3.2 單個參數的匿名函數
a = lambda x:x+1print(a(2))
運行: 3
3.3 多參數的匿名函數
a = lambda x, y: x + y + 1print(a(1,2))print(a(y=3,x=2))
運行:
46
3.4 其他
1 >>> lambda x:x+1(1)2 <function <lambda> at 0x7f20f4cfb9d8>
有的部落格上說輸入第一行可以直接得到結果,其實僅僅得到了匿名函數的地址(十六進位)
>>> lambda x:x+1(1)<function <lambda> at 0x7f20f4cfb9d8>>>> id(lambda x:x+1(1))139779554729768>>> hex(id(lambda x:x+1(1)))‘0x7f20f4cfb9d8‘
如果需要獲得函數值,則
>>> (lambda x:x+1)(1)2
同樣
print(lambda x:x+1(1)) # <function <lambda> at 0x7fa097b54f28>print((lambda x:x+1)(1)) # 2
計算
(lambda x : (lambda y: (lambda z: x + y + z)(1))(2))(3)
等於多少? 6
參考python的匿名函數lambda解釋及用法,Python學習筆記(十二):lambda運算式與函數式編程,Python lambda介紹
Python學習筆記010——匿名函數lambda