歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python中的Lambda表達式

Python中的Lambda表達式

日期:2017/3/1 9:09:08   编辑:Linux編程

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

Copyright © Linux教程網 All Rights Reserved