python中l(wèi)ambda()的用法
在C++11和C#中都有匿名函數(shù)的存在。下面看看在python中匿名函數(shù)的使用。
1.lambda只是一個表達(dá)式,函數(shù)體比def簡單很多。
2.lambda的主體是一個表達(dá)式,而不是一個代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。
3.lambda表達(dá)式是起到一個函數(shù)速寫的作用。允許在代碼內(nèi)嵌入一個函數(shù)的定義。
例1.定義一個lambda表達(dá)式,求三個數(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表達(dá)式求n的階乘
# -*- coding: UTF-8 -*- n = 5 print reduce(lambda x,y:x*y,range(1,n+1)) 輸出:120
4.lambda表達(dá)式也可以用在def函數(shù)中
# -*- coding: UTF-8 -*- def action(x): return lambda y:x + y a = action(2) print a(22) 輸出:24
這里定義了一個action函數(shù),返回了一個lambda表達(dá)式。其中l(wèi)ambda表達(dá)式獲取到了上層def作用域的變量名x的值。
a是action函數(shù)的返回值,a(22),即是調(diào)用了action返回的lambda表達(dá)式。
這里也可以把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)文章
Python排序方法中sort和sorted的區(qū)別詳解
在python中常用的排序函數(shù)就是sort()和sorted()這兩個函數(shù),使用 sort() 或內(nèi)建函數(shù) sorted() 對列表進(jìn)行排序,本文將詳細(xì)介紹sorted和sort兩者之間的區(qū)別,感興趣的可以了解一下2023-08-08在import scipy.misc 后找不到 imsave的解決方案
這篇文章主要介紹了在import scipy.misc 后找不到 imsave的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python multiprocessing.Manager介紹和實(shí)例(進(jìn)程間共享數(shù)據(jù))
這篇文章主要介紹了Python multiprocessing.Manager介紹和實(shí)例(進(jìn)程間共享數(shù)據(jù)),本文介紹了Manager的dict、list使用例子,同時介紹了namespace對象,需要的朋友可以參考下2014-11-11