Python_lambda(匿名函數)詳解

lambda函數介紹

Python中用lambda關鍵字來表示匿名函數,冒號前的xx表示函數參數,具體例子如下所示:

list(map(lambda x : x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))

[1, 4, 9, 16, 25, 36, 49, 64, 81]

可以看出匿名函數lambda x:x×xx : x\times x實際上就是下面的函數的匿名形式:

def f(x):
	return x * x

匿名函數的特點

  1. 只能有一個表達式,不用寫return,返回值就是該表達式的結果。
  2. 因爲匿名函數沒有名字,所以不用擔心函數名衝突。
  3. 匿名函數也是一個函數對象,也可以把匿名函數賦值給一個變量,再利用變量來調用該匿名函數。或者將匿名函數作爲返回值返回。
  4. 匿名函數簡化了函數定義的書寫形式,使得代碼更爲簡潔。
  5. 但是匿名函數可能在一定程度上降低可讀性。

lambda和def定義函數的區別

  1. def創建的方法是有名稱的,而lambda沒有。
  2. lambda只是一個表達式,而def則是一個語句。
  3. lambda表達式中的:後面只能有一個表達式,而def則可以有多個。
  4. if或for或print等語句不能用於lambda中,而def可以。
  5. lambda一般用來定義簡單的函數,而def可以定義複雜的函數。
  6. lambda函數不能被別的程序調用,def可以。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章