本篇內(nèi)容主要講解“Python匿名函數(shù)lambda的用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Python匿名函數(shù)lambda的用法”吧!

Python內(nèi)置了多個關(guān)鍵字,今天我們來介紹下其中非常好用的lambda關(guān)鍵字,它可以用一個表達式來表示函數(shù)。
lambda 表達式的語法格式:lambda [parameter_list] : expression
從語法格式可以看出 lambda 表達式的幾個要點:
lambda 表達式必須使用 lambda 關(guān)鍵字定義
lambda 表達式只能是單行表達式
parameter_list是參數(shù)列表
expression是表達式
lambda 表達式的本質(zhì)是匿名的、單行函數(shù)體的函數(shù),因此 lambda 表達式也稱為lambda函數(shù)。作為函數(shù),它的輸入是傳入到參數(shù)列表argument_list的值,輸出是根據(jù)表達式expression計算得到的值。
下面是一些lambda函數(shù)示例:
lambda x,y:x*y # 函數(shù)輸入為x和y,輸出為它們的積x*y lambda :None # 函數(shù)沒有輸入?yún)?shù),輸出是None lambda *args:sum(args) # 函數(shù)輸入為任意個數(shù)的參數(shù),輸出是它們的和(隱性要求輸入?yún)?shù)必須能夠進行加法運算) lambda **kwargs:5 # 輸入為任意鍵值對參數(shù),輸出為5
lambda 表達式也可以寫成函數(shù)的形式。例如以上 lambda 表達式lambda x,y:x*y可改寫為函數(shù)形式:
def product(x,y): return x*y
product()函數(shù)只有一行代碼,使用 lambda 表達式可以省去def定義函數(shù)的過程,起到一個函數(shù)速寫的作用。不過總體來說,函數(shù)比 lambda 表達式的適應(yīng)性更強,用來處理更強大的任務(wù)。lambda 表達式主體是一個表達式,而不是一個代碼塊,僅僅能在lambda表達式中封裝有限的邏輯進去。
lambda語法是固定的,本質(zhì)上只能定義一個lambda函數(shù)。根據(jù)定義的lambda函數(shù)可擴展為以下幾種用法:
lambda語法是固定的,本質(zhì)上只能定義一個lambda函數(shù)。根據(jù)定義的lambda函數(shù)可擴展為以下幾種用法:
1 . 將lambda函數(shù)賦值給一個變量,通過這個變量間接調(diào)用該lambda函數(shù)。比如定義了乘法功能的lambda函數(shù)lambda x,y:x*y,并將其賦值給變量product,這樣變量product便成為具有乘法功能的函數(shù),如下所示:
product = lambda x,y:x*y print(product(2,5)) # 10
2 . 將lambda函數(shù)作為參數(shù)傳遞給其他函數(shù)。Python內(nèi)置函數(shù)中部分可接收函數(shù)作為參數(shù)。典型的有filter()、map()、sorted()、reduce()等,大體原理相近,此處介紹以內(nèi)置函數(shù)map()來調(diào)用lambda 表達式。
map函數(shù)的第一個參數(shù)需要傳入函數(shù),此處使用lambda函數(shù)用于指定對列表中每一個元素的共同操作,這樣程序更加簡潔,而且性能更好。如下所示:
# 傳入計算乘法的lambda表達式作為參數(shù) result = map(lambda x,y: x*y, range(8), range(8)) print([e for e in result]) # [0, 1, 4, 9, 16, 25, 36, 49] result = map(lambda x,y: x*y if x % 2 == 0 else 0, range(8), range(8)) print([e for e in result]) # [0, 0, 4, 0, 16, 0, 36, 0]
到此,相信大家對“Python匿名函數(shù)lambda的用法”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁名稱:Python匿名函數(shù)lambda的用法-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://chinadenli.net/article12/eoegc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、Google、移動網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、網(wǎng)站營銷、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)