如何在Python中使用Lambda函式?
Python Lambda函式的匿名特性表明它們沒有名稱。正如我們所知,標準的Python函式是用`def`關鍵字定義的。類似地,Python使用`lambda`關鍵字宣告匿名函式。
語法
Python中lambda表示式的語法如下:
lambda arguments: expression
無論引數個數多少,此函式只評估並返回一個表示式。
Lambda函式可以在任何需要函式物件的地方使用。
必須始終記住,lambda函式在語法上僅限於單個表示式。除了函式中的其他型別的表示式外,它在某些程式設計領域還有多種用途。它們動態返回函式的定義。
Lambda函式不包含`return`語句,它們總是返回一個表示式。你可以在任何需要函式的地方放置lambda定義。假設我們有一個只使用一次且僅從一個地方呼叫的函式,那麼我們可以使用lambda函式。因此,你不需要為它命名,你可以在那裡直接定義功能。因此,我們避免使用函式而使用Lambda表示式。
示例1
讓我們來看下面的lambda函式示例。
# Python program to demonstrate lambda functions x ="HelloWorld" # lambda gets pass to print (lambda x : print(x))(x)
輸出
得到以下輸出。
HelloWorld
示例2
讓我們來看一個使用lambda函式進行數字加法的示例。在下面的示例中,我們將一個整數作為單個引數傳遞給lambda函式,該函式將100加到給定數字上。
x = lambda a : a + 100 print(x(5))
輸出
得到以下輸出。
105
示例3
如上例所示,我們給lambda函式輸入單個引數,也可以輸入多個引數。讓我們來看一個帶有多個引數的示例。
x = lambda a, b : a * b print(x(9, 1))
輸出
得到以下輸出。
9
示例4
讓我們來看一個用於列表推導的lambda函式。
列表用於在一個變數中儲存多個專案。列表是Python中用於儲存資料集合的四種內建資料型別之一;另外三種是元組、集合和字典,每種都有其獨特的用途。當你想根據現有列表的值建立一個新列表時,列表推導提供了一種更簡潔的語法。
tables = [lambda x=x: x*10 for x in range(1, 11)] for table in tables: print(table())
輸出
獲得以下輸出。
10 20 30 40 50 60 70 80 90 100
示例5
雖然lambda函式不允許使用多個語句,但我們可以建立兩個lambda函式,然後將其中一個作為引數傳遞給另一個。讓我們使用lambda查詢第二大的元素。
List = [[4,3,4],[9, 4, 16, 64],[3, 6, 9, 12]] #Sorting sublist sortList = lambda x: (sorted(i) for i in x) # Get the second largest element secondLargest = lambda x, f : [y[len(y)-2] for y in f(x)] result = secondLargest(List, sortList) print(result)
輸出
輸出如下。
[4, 16, 9]