Python 以其簡單性和可讀性而聞名,提供了一個強大的功能,稱為 lambda 函數。這些小型匿名函數提供了一種簡潔的方式來表達簡單的功能,而無需完整的函數定義。在本文中,我們將探討什麼是 lambda 函數、它們如何運作,並提供範例來說明它們的用例。
lambda 函數是使用 lambda 關鍵字定義的小型匿名函數。它可以採用任意數量的參數,但只能有一個表達式。文法如下:
lambda arguments: expression
Lambda 函數在函數式程式設計中特別有用,在函數式程式設計中,函數被視為一等公民。這意味著您可以將它們作為參數傳遞,從其他函數傳回它們,或將它們指派給變數。
以下是如何定義並使用將兩個數字相加的基本 lambda 函數:
add = lambda x, y: x + y result = add(3, 5) print(result) # Output: 8
在此範例中,add 函數接受兩個參數並傳回它們的總和。
map() 函數將給定函數應用於可迭代物件中的所有項目。以下是如何使用 lambda 函數和 map() 對列表中的數字平方:
numbers = [1, 2, 3, 4, 5] squares = list(map(lambda x: x ** 2, numbers)) print(squares) # Output: [1, 4, 9, 16, 25]
filter() 函數建立一個函數傳回 true 的元素列表。以下是如何使用 lambda 函數從列表中過濾掉偶數:
numbers = [1, 2, 3, 4, 5, 6] odd_numbers = list(filter(lambda x: x % 2 != 0, numbers)) print(odd_numbers) # Output: [1, 3, 5]
您可以使用 lambda 函數來自訂清單的排序。例如,若要根據第二個元素對元組清單進行排序,您可以執行以下操作:
data = [(1, 'one'), (3, 'three'), (2, 'two')] sorted_data = sorted(data, key=lambda x: x[1]) print(sorted_data) # Output: [(1, 'one'), (3, 'three'), (2, 'two')]
高階函數是可以接受其他函數作為參數的函數。這是一個示範這一點的範例:
def apply_function(f, x): return f(x) result = apply_function(lambda x: x * 2, 10) print(result) # Output: 20
Lambda 函數也可以包含條件邏輯。以下是如何定義傳回兩個值中最大值的 lambda 函數:
max_value = lambda a, b: a if a > b else b print(max_value(10, 20)) # Output: 20
Python lambda 函數是編寫簡潔且富有表現力的程式碼的強大工具。它們使開發人員能夠創建可在各種上下文中使用的小型一次性函數,而無需完整函數定義的開銷。雖然 lambda 函數不能取代常規函數,但對於需要簡單性和簡潔性的情況來說,它們非常寶貴。
透過將 lambda 函數整合到程式碼中,您可以增強可讀性並使 Python 中的函數式程式設計工作更有效率。無論您是將它們與 map()、filter() 或自訂高階函數一起使用,lambda 函數都是 Python 多功能工具包的重要組成部分。
以上是了解 Python Lambda 函數:綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!