Python 中的 Lambda 函數是動態建立小型匿名函數的強大方法。這些函數通常用於簡短的操作,不需要完整函數定義的開銷。
傳統函數是使用 def 關鍵字定義的,而 Lambda 函數是使用 lambda 關鍵字定義的,並且直接整合到程式碼行中。特別是,它們經常用作內建函數的參數。它們使開發人員無需臨時函數定義即可編寫乾淨且可讀的程式碼。
在本文中,我們將介紹 Lambda 函數的用途及其語法。我們還將提供一些使用它們的範例和最佳實踐,並討論它們的優缺點。
自 2.0 版本以來,Lambda 函數已成為 Python 的一部分,因此您需要:
在本教程中,我們將了解如何將 Lambda 函數與 Pandas 庫結合使用:一個快速、強大、靈活且易於使用的開源資料分析和操作庫。如果您尚未安裝,請執行以下命令:
pip install pandas
首先,讓我們定義開發人員建立 Lambda 函數必須使用的語法。
Lambda 函數是使用 lambda 關鍵字定義的,後面跟著一個或多個參數和一個表達式:
lambda arguments: expression
假設我們要建立一個將兩個數字相加的 Lambda 函數:
add = lambda x, y: x + y
執行以下指令:
result = add(3, 5) print(result)
這會導致:
8
我們建立了一個帶有兩個參數 x 和 y 的匿名函數。與傳統函數不同,Lambda 函數沒有名稱:這就是為什麼我們說它們是「匿名的」。
此外,我們不使用 return 語句,就像在常規 Python 函數中那樣。所以我們可以隨意使用 Lambda 函數:它可以被列印(就像我們在本例中所做的那樣)、儲存在變數中等等。
現在讓我們來看看 Lambda 函數的一些常見用例。
Lambda 函數特別適用於我們需要臨時簡單函數的情況。特別是,它們通常用作高階函數的參數。
讓我們來看一些實際例子。
map() 是一個內建函數,它將給定的函數應用於可迭代的每個項目,並傳回帶有結果的地圖物件。
例如,假設我們要計算列表中每個數字的平方根。我們可以使用 Lambda 函數,如下所示:
pip install pandas
這會導致:
lambda arguments: expression
我們現在有一個包含初始數字的平方根的清單。
正如我們所看到的,這極大地簡化了即時使用不需要稍後重用的函數的流程。
現在,假設我們有一個數字列表並想要過濾偶數。
我們可以使用 Lambda 函數,如下所示:
add = lambda x, y: x + y
這會導致:
result = add(3, 5) print(result)
Python中的sorted()函數從任何可迭代的元素中傳回一個新的排序列表。使用 Lambda 函數,我們可以對這些清單套用特定的篩選條件。
例如,假設我們有一個二維點列表:(x,y)。我們想要建立一個以增量方式對 y 值進行排序的清單。
我們可以這樣做:
8
我們得到:
# Define the list of numbers numbers = [1, 2, 3, 4] # Calculate square values and print results squared = list(map(lambda x: x ** 2, numbers)) print(squared)
鑑於其簡潔性,Lambda 函數可以嵌入到列表推導式中以進行即時計算。
假設我們有一個數字列表。我們想要:
我們可以這樣做:
[1, 4, 9, 16]
我們得到:
# Create a list of numbers numbers = [1, 2, 3, 4] # Filter for even numbers and print results even = list(filter(lambda x: x % 2 == 0, numbers)) print(even)
鑑於我們已經探討過的範例,讓我們來看看使用 Lambda 函數的一些優點:
讓我們簡單討論一下 Python 中 Lambda 函數的一些限制和缺點:
現在我們已經考慮了一些優點和缺點,讓我們定義一些有效使用 Lambda 函數的最佳實踐:
在某些情況下,更高級的 Lambda 函數技術可能會有所幫助。
讓我們來看一些例子。
Lambda 函數可以嵌套以進行複雜的操作。
此技術在需要按順序進行多個小型轉換的場景中非常有用。
例如,假設您要建立一個函數來計算數字的平方根,然後加 1。以下是如何使用 Lambda 函數來執行此操作:
pip install pandas
你得到:
lambda arguments: expression
許多 Python 函式庫利用 Lambda 函數來簡化複雜的資料處理任務。
例如,Lambda 函數可以與 Pandas 和 NumPy 一起使用,以簡化資料操作和轉換。
假設我們有一個包含兩列的資料框。我們想要建立另一列,作為其他兩列的總和。在這種情況下,我們可以使用 Lambda 函數,如下所示:
add = lambda x, y: x + y
我們得到:
pip install pandas
我們的 Python Lambda 函數之旅就到此為止!
在本文中,我們了解如何在 Python 中使用 Lambda 函數,探討了它們的優缺點、一些最佳實踐,並涉及了一些高級用例。
編碼愉快!
P.S.如果您想在 Python 文章發布後立即閱讀,請訂閱我們的 Python Wizardry 時事通訊,不錯過任何一篇文章!
以上是如何在 Python 中使用 Lambda 函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!