Lambda表達式在python程序中是一種很常見的匿名方法的書寫形式,它書寫起來非常簡單,但是犧牲了可讀性。下面來看一下Lambda的簡單介紹。
語法
lambda [parameter_list]:expression
Lambda表達式的返回值是一個函數,[parameter_list]是函數的參數,expression是具體的操作。它對應的非匿名方法的書寫方式為:
def function([parameter_list]): expression
如下面的例子:
#Function def func(n): return n + 1 print(func(2)) #Lambda f = lambda x:x+1 print(f) print(f(2))
第一種方式是正常的非匿名函數的加一方法,第二種是匿名函數的lambda表達方式。Lambda中的x是表達式返回函數的參數,x+1是具體的函數內容。因為Lambda表達式返回的是一個匿名函數,所以打印結果為:
當然Lambda表達式也有以下的使用情況:
#多參數情況 print("多參數情況") multi = lambda x,y,z: x+y+z print(multi(1,2,3)) #和非匿名函數一塊工作 print("和非匿名函數一塊工作") def namedFunc(n): return lambda x:n+x print(namedFunc(2)) #會打印出function,相當於 lambda x: 2+x print(namedFunc(2)(3)) #會打印出5 f = namedFunc(2) print(f(3)) #等同於namedFunc(2)(3)
得到的結果如下:
對於lambda表達式在Python程序中的一些小建議:
1. 對於簡單的邏輯處理,可以放心使用Lambda表達式,這樣比較簡潔
2. 對於復雜的邏輯處理,盡量避免使用Lambda表達式,易讀性差,而且容易出錯(大牛除外)
C# Lambda表達式詳解 http://www.linuxidc.com/Linux/2016-11/137109.htm
Lambda表達式和匿名內部類 http://www.linuxidc.com/Linux/2016-10/136338.htm
Java Lambda表達式初探 http://www.linuxidc.com/Linux/2016-10/136337.htm
Lambda表達式(C語言) http://www.linuxidc.com/Linux/2016-07/133555.htm