1. 程式人生 > 其它 >學習python -- 第021天 lambda表示式(匿名函式)

學習python -- 第021天 lambda表示式(匿名函式)

簡介

對於定義一個簡單的函式,Python還提供了另外一種方法,即 lambda 表示式。

lambda 表示式,又稱匿名函式,常用來表示內部僅包含 1 行表示式的函式。如果一個函式的函式體僅有 1 行表示式,則該函式就可以用 lambda 表示式來代替。

lambda 表示式的語法格式如下:

name = lambda [list] : 表示式

其中,定義 lambda 表示式,必須使用 lambda 關鍵字;[list] 作為可選引數,等同於定義函式是指定的引數列表;value 為該表示式的名稱。

該語法格式轉換成普通函式的形式,如下所示:

 def name(list):
     return
表示式 name(list)

示例

舉個例子,如果設計一個求 2 個數之和的函式,使用普通函式的方式,定義如下:

def add(x, y):
    return x+ y
print(add(1,2))

由於上面程式中,add() 函式內部僅有 1 行表示式,因此該函式可以直接用 lambda 表示式表示:

add = lambda x,y:x+y
print(add(3,4))

另外 對於給一個巢狀在列表裡的字典根據年齡排序也可以使用lambda表示式

alist = [{"name": "a", "age": 20}, {"name": "b", "age": 30}, {"
name": "c", "age": 25}] alist.sort(key=lambda x: x['age']) print(alist)

總結

可以這樣理解 lambda 表示式,其就是簡單函式(函式體僅是單行的表示式)的簡寫版本。相比函式,lamba 表示式具有以下 2 個優勢:

  • 對於單行函式,使用 lambda 表示式可以省去定義函式的過程,讓程式碼更加簡潔;
  • 對於不需要多次複用的函式,使用 lambda 表示式可以在用完之後立即釋放,提高程式執行的效能。
認清現實,放棄幻想。 細節決定成敗,心態放好,認真學習與工作。