Python中的Lambda表達式

Lambda表達式在python程序中是一種很常見的匿名方法的書寫形式,它書寫起來很是簡單,可是犧牲了可讀性。下面來看一下Lambda的簡單介紹。python

語法express

lambda [parameter_list]:expression

Lambda表達式的返回值是一個函數,[parameter_list]是函數的參數,expression是具體的操做。它對應的非匿名方法的書寫方式爲:函數

def function([parameter_list]):
    expression

 

以下面的例子:spa

#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表達式返回的是一個匿名函數,因此打印結果爲:code

 

固然Lambda表達式也有如下的使用狀況:blog

#多參數狀況
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)

獲得的結果以下:io

 

對於lambda表達式在Python程序中的一些小建議:function

1. 對於簡單的邏輯處理,能夠放心使用Lambda表達式,這樣比較簡潔class

2. 對於複雜的邏輯處理,儘可能避免使用Lambda表達式,易讀性差,並且容易出錯(大牛除外)匿名函數

相關文章
相關標籤/搜索