python中lambda函數的用法介紹(附範例)

不言
發布: 2019-04-01 11:17:58
轉載
125970 人瀏覽過

這篇文章帶給大家的內容是關於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中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!