您好,登錄后才能下訂單哦!
本篇內容主要講解“Python匿名函數lambda的用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python匿名函數lambda的用法”吧!
Python內置了多個關鍵字,今天我們來介紹下其中非常好用的lambda關鍵字,它可以用一個表達式來表示函數。
lambda 表達式的語法格式:lambda [parameter_list] : expression
從語法格式可以看出 lambda 表達式的幾個要點:
lambda 表達式必須使用 lambda 關鍵字定義
lambda 表達式只能是單行表達式
parameter_list是參數列表
expression是表達式
lambda 表達式的本質是匿名的、單行函數體的函數,因此 lambda 表達式也稱為lambda函數。作為函數,它的輸入是傳入到參數列表argument_list的值,輸出是根據表達式expression計算得到的值。
下面是一些lambda函數示例:
lambda x,y:x*y # 函數輸入為x和y,輸出為它們的積x*y lambda :None # 函數沒有輸入參數,輸出是None lambda *args:sum(args) # 函數輸入為任意個數的參數,輸出是它們的和(隱性要求輸入參數必須能夠進行加法運算) lambda **kwargs:5 # 輸入為任意鍵值對參數,輸出為5
lambda 表達式也可以寫成函數的形式。例如以上 lambda 表達式lambda x,y:x*y可改寫為函數形式:
def product(x,y): return x*y
product()函數只有一行代碼,使用 lambda 表達式可以省去def定義函數的過程,起到一個函數速寫的作用。不過總體來說,函數比 lambda 表達式的適應性更強,用來處理更強大的任務。lambda 表達式主體是一個表達式,而不是一個代碼塊,僅僅能在lambda表達式中封裝有限的邏輯進去。
lambda語法是固定的,本質上只能定義一個lambda函數。根據定義的lambda函數可擴展為以下幾種用法:
lambda語法是固定的,本質上只能定義一個lambda函數。根據定義的lambda函數可擴展為以下幾種用法:
1 . 將lambda函數賦值給一個變量,通過這個變量間接調用該lambda函數。比如定義了乘法功能的lambda函數lambda x,y:x*y,并將其賦值給變量product,這樣變量product便成為具有乘法功能的函數,如下所示:
product = lambda x,y:x*y print(product(2,5)) # 10
2 . 將lambda函數作為參數傳遞給其他函數。Python內置函數中部分可接收函數作為參數。典型的有filter()、map()、sorted()、reduce()等,大體原理相近,此處介紹以內置函數map()來調用lambda 表達式。
map函數的第一個參數需要傳入函數,此處使用lambda函數用于指定對列表中每一個元素的共同操作,這樣程序更加簡潔,而且性能更好。如下所示:
# 傳入計算乘法的lambda表達式作為參數 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匿名函數lambda的用法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。