python中l(wèi)ambda()的用法
在C++11和C#中都有匿名函數(shù)的存在。下面看看在python中匿名函數(shù)的使用。
1.lambda只是一個表達式,函數(shù)體比def簡單很多。
2.lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
3.lambda表達式是起到一個函數(shù)速寫的作用。允許在代碼內(nèi)嵌入一個函數(shù)的定義。
例1.定義一個lambda表達式,求三個數(shù)的和
# -*- coding: UTF-8 -*- f = lambda x,y,z:x + y + z print f(1,2,3) print f(4,5,6) 輸出: 6 15
例2.用lambda表達式求n的階乘
# -*- coding: UTF-8 -*- n = 5 print reduce(lambda x,y:x*y,range(1,n+1)) 輸出:120
4.lambda表達式也可以用在def函數(shù)中
# -*- coding: UTF-8 -*- def action(x): return lambda y:x + y a = action(2) print a(22) 輸出:24
這里定義了一個action函數(shù),返回了一個lambda表達式。其中l(wèi)ambda表達式獲取到了上層def作用域的變量名x的值。
a是action函數(shù)的返回值,a(22),即是調(diào)用了action返回的lambda表達式。
這里也可以把def直接寫成lambda形式。如下
# -*- coding: UTF-8 -*- b = lambda x:lambda y:x + y a = b(3) print a(2) print (b(2))(2) 輸出: 5 4
好了這篇文章就結(jié)束到這了,需要的朋友可以看下面的相關(guān)內(nèi)容
相關(guān)文章
安裝Keras,tensorflow,并實現(xiàn)將虛擬環(huán)境添加到j(luò)upyter?notebook
這篇文章主要介紹了安裝Keras,tensorflow,并實現(xiàn)將虛擬環(huán)境添加到j(luò)upyter?notebook,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Pycharm2020最新激活碼|永久激活(附最新激活碼和插件的詳細教程)
這篇文章主要介紹了Pycharm2020最新激活碼|永久激活(附最新激活碼和插件的詳細教程),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09

