這篇文章帶給大家的內容是關於python中lambda函數的用法介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
匿名函數lambda:是指一類別無需定義標識符(函數名稱)的函數或子程式。
lambda 函數可以接收任意多個參數 (包括可選參數) 並且傳回單一表達式的值。
語法:
lambda [arg1 [,arg2,.....argn]]:expression
冒號前是參數,可以有多個,用逗號隔開,冒號右邊的為表達式(只能為一個)。其實lambda回傳值是一個函數的位址,也就是函數物件。
舉例:
1.將lambda函數賦值給一個變量,透過這個變數間接呼叫該lambda函數。
def sum(x,y): return x+y print(sum(1,2))
使用lambda函數:
sum = lambda x,y : x+y print(sum(1,2))
2.將lambda函數作為參數傳遞給其他函數。部分Python內建函數接收函數為參數。
def odd(x): return x%2 temp = range(10) show = filter(odd,temp) print(list(show)) #[1, 3, 5, 7, 9]
使用lambda函數:
print(list(filter(lambda x: x%2,range(10)))) #[1, 3, 5, 7, 9]
此時lambda函數用來指定篩選清單元素的條件。
再例如:
map(lambda x: x+1, [1, 2,3]) #[2, 3, 4]
此時lambda函數用來指定清單中每一個元素的共同運算。
另外還有:sorted()、map()
3.將lambda函數當作其他函數的回傳值,傳回給呼叫者。
函數的回傳值也可以是函數。例如
return lambda x, y: x y
傳回一個加法函數。這時,lambda函數其實是定義在某個函數內部的函數,稱為巢狀函數,或是內部函數。對應的,將包含巢狀函數的函數稱為外部函數。內部函數能夠存取外部函數的局部變量,這個特性是閉包(Closure)程式設計的基礎。
4.將lambda函數賦值給其他函數,從而將其他函數用該lambda函數取代。
例如,為了把標準函式庫time中的函數sleep的功能屏蔽(Mock),我們可以在程式初始化時呼叫:
time.sleep=lambda x:None
。這樣,在後續程式碼中呼叫time函式庫的sleep函數將不會執行原有的功能。例如,執行time.sleep(3)
時,程式不會休眠3秒鐘,而是什麼都不做
5.將if...else語句縮減為單一的條件式,
語法為:expression1 if A else expression2
若A為True,條件式的結果為expression1,否則為expression2
def s(x): if x==1: return "yes" else: return "no" print(s(0)) print(s(1))
使用lambda函數:
s=lambda x:"yes" if x==1 else "no" print(s(0)) print(s(1))
【相關推薦:python影片教學】
以上是python中lambda函數的用法介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!