Python學習筆記010——匿名函數lambda

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.