Python 的 lambda
表示式,簡稱匿名函式,是一種建立小型匿名函式的簡潔方式。與常規的 def
關鍵字定義的函式不同,lambda
函式只包含一個表示式,表示式的結果即為函式的返回值。lambda
函式通常用於需要短期使用的小函式,尤其是在函數語言程式設計中,比如在 map
、filter
和 reduce
等函式中。
語法
lambda para1, para2, ... : expression
lambda
:關鍵字,表示這是一個匿名函式。para1, para2, ...
:函式的引數,可以有多個,用逗號分隔。expression
:一個表示式,使用這些引數進行計算,並返回結果。
示例
基本示例
# 定義一個 lambda 函式,計算兩個數的和
sum_func = lambda x, y: x + y
# 呼叫 lambda 函式
result = sum_func(10, 20)
print(result) # 30
在 map
、filter
和 reduce
中使用
# 使用 map 函式
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x ** 2, numbers)
print(list(squared)) # [1, 4, 9, 16, 25]
# 使用 filter 函式
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # [2, 4]
# 使用 reduce 函式
from functools import reduce
sum_of_numbers = reduce(lambda x, y: x + y, numbers)
print(sum_of_numbers) # 15
作為其他函式的引數
# 定義一個高階函式,接受一個函式和一個值作為引數
def high_order_func(func, value):
return func(value)
# 使用 lambda 函式作為引數
result = high_order_func(lambda x: x ** 2, 5)
print(result) # 25