Python Lambda 表示式

Undefined443發表於2024-06-20

Python 的 lambda 表示式,簡稱匿名函式,是一種建立小型匿名函式的簡潔方式。與常規的 def 關鍵字定義的函式不同,lambda 函式只包含一個表示式,表示式的結果即為函式的返回值。lambda 函式通常用於需要短期使用的小函式,尤其是在函數語言程式設計中,比如在 mapfilterreduce 等函式中。

語法

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

mapfilterreduce 中使用

# 使用 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

相關文章