`lambda` 在Python中是一個關鍵字,用於創建匿名函式,即沒有名稱的函式。Lambda 函式的語法為 `lambda 參數列表: 表達式`,其中參數列表可以有多個參數,用逗號分隔;表達式是函式的主體,只能是一行代碼,其結果為函式的返回值。
Lambda 函式的套用場景主要包括:
作為參數傳遞給其他函式:例如,與 `map()`、`filter()`、`reduce()` 等內置函式一起使用,可以對序列中的每個元素套用Lambda函式,並返回結果序列。
```python
squared_lst = list(map(lambda x: x2, )) # 輸出
even_lst = list(filter(lambda x: x % 2 == 0, )) # 輸出
sum = reduce(lambda x, y: x + y, ) # 輸出 15
```
作為返回值返回給調用者:實現高階函式的功能,如柯里化函式。
```python
curry = lambda func, arg: lambda *args: func(arg, *args)
add_3 = curry(add_function, 3) # 創建一個新的函式,返回與10的和為7
```
在排序和篩選中使用:例如,使用Lambda函式作為 `sorted()` 的 `key` 參數進行自定義排序。
```python
sorted_words = sorted(words, key=lambda word: len(word)) # 按照單詞長度排序
```
雖然Lambda函式在編寫簡單的、一次性的函式時非常有用,但它們通常不適用於定義更複雜或需要多行代碼的函式。對於這類情況,建議使用 `def` 關鍵字來定義命名函式,以提高代碼的可讀性和維護性。