Skip to main content

Python 高阶函数 (High-order Function)

大家好!今天我们来聊聊Python的高阶函数 High-order function。 高阶函数是指可以接受函数作为参数,或者返回 一个函数的函数。 在这个例子中,operate函数就是一个高阶函数, 因为它接受addmultiply作为参数。 addmultiply函数分别执行加法和乘法运算。 operate函数根据传入的函数来执行不同的操作。

除了自定义高阶函数,Python还内置了一些常用的 高阶函数,例如mapfilterreduce

map(function, iterable): 将函数应用于可迭代对象 的每个元素,并返回一个迭代器。 值得提一下:在这个例子中,我们使用了lambda表达式。 Lambda表达式是一种匿名函数,它可以用于创建 简单的函数。

filter(function, iterable): 过滤可迭代对象中的 元素,返回一个迭代器,其中包含使函数返回True的 元素。 reduce(function, iterable): 将函数累积地应用于 可迭代对象的元素,从而将序列减少为单个值。

希望这个简单的例子能帮助你理解Python的 High-order function!

代码示例

def operate(func, x, y):
return func(x, y)

def add(x, y):
return x + y

def multiply(x, y):
return x * y

result1 = operate(add, 5, 3)
result2 = operate(
multiply, 5, 3)

print(result1) # 8
print(result2) # 15

numbers = [1, 2, 3, 4, 5]

squared = list(map(lambda x: x**2,
numbers))
print(squared) # [1, 4, 9, 16, 25]

even = list(filter(lambda x: x % 2 == 0,
numbers))
print(even) # [2, 4]

from functools import reduce
sum_all = reduce(lambda x, y: x + y,
numbers)
print(sum_all) # 15