一、匿名函數是什麼
在 Python 中,一個 lambda 函數(也稱為「匿名函數」)可以簡單地理解為一次性的、即時的函數,其不需要事先定義,不需要給定函數名稱,也不用定義返回值變量。由於 lambda 函數的定義非常簡單,因此常常被稱為「輕量級」函數。
lambda 函數的形式如下:
lambda arguments: expression
其中,arguments
是指函數的參數,可以有多個參數,也可以不帶參數。冒號後面的 expression
是函數的返回值,不用寫 return
語句,也不用給返回值指定變量名。
下面是一個示例,展示了一個 lambda 函數的基本形式,它將兩個數字相加,並返回它們的和:
sum = lambda x, y: x + y print(sum(2, 3)) # 輸出:5
二、lambda 函數的優勢
與普通的函數相比,lambda 函數具有以下幾個優點:
1. 代碼量少
lambda 函數的語法比普通函數更簡潔,因此更易於理解和使用。
2. 不需要命名函數
由於 lambda 函數沒有函數名稱,因此它們可以直接使用且不需要事先定義。這使得 lambda 函數常用於需要一次性執行的任務,例如在列表中進行排序、篩選、映射等操作。
3. 常常與高階函數一起使用
在 Python 中,另一個優點是,lambda 函數可以作為高階函數的參數,進一步簡化了代碼編寫和可讀性。高階函數(Higher-Order Functions)是指那些接受一個或多個函數作為參數,並返回一個函數作為返回值的函數,例如 map
、filter
等。
三、lambda 函數的應用場景
1. 列表排序
在 Python 中,可以使用 lambda 函數對列表進行排序。以下示例代碼將一個包含元組的列表按照元組中的第二個元素進行排序:
elements = [ ('banana', 2), ('apple', 5), ('pear', 1), ('orange', 4) ] elements.sort(key=lambda x: x[1]) print(elements)
輸出結果為:
[('pear', 1), ('banana', 2), ('orange', 4), ('apple', 5)]
2. 篩選操作
使用 lambda 函數可以快速進行篩選操作。以下示例代碼展示如何從一個列表中篩選出偶數:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers)
輸出結果為:
[2, 4, 6, 8, 10]
3. 映射操作
使用 lambda 函數可以快速進行映射操作。以下示例代碼通過 lambda 函數將一個列表中的元素平方,得到一個新的列表:
numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(lambda x: x * x, numbers)) print(squared_numbers)
輸出結果為:
[1, 4, 9, 16, 25]
四、總結
lambda 函數是 Python 中的一種非常實用的工具,它可以幫助我們快速、簡便地創建臨時的、即時的、輕量級的函數。lambda 函數的語法簡單、易於理解,特別是在與高階函數一起使用時,其優勢更為明顯。我們可以使用 lambda 函數進行列表排序、篩選、映射等操作,從而提高 Python 代碼的效率和可讀性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/243008.html