在 Python 中,高阶函数是一种非常强大的编程概念。它允许我们将函数作为参数传递给其他函数,或者将函数作为返回值返回。
常见的 Python 高阶函数包括map()
、filter()
、reduce()
等。
map()
函数接受一个函数和一个可迭代对象作为参数,然后将函数应用于可迭代对象的每个元素,返回一个新的可迭代对象。
例如,我们可以使用map()
函数将一个列表中的每个元素都乘以 2:
numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x * 2, numbers)
print(list(result))
filter()
函数接受一个函数和一个可迭代对象作为参数,然后将函数应用于可迭代对象的每个元素,只返回那些使函数返回值为真的元素,组成一个新的可迭代对象。
比如,我们可以使用filter()
函数从一个列表中筛选出所有的偶数:
numbers = [1, 2, 3, 4, 5]
result = filter(lambda x: x % 2 == 0, numbers)
print(list(result))
reduce()
函数则接受一个函数和一个可迭代对象作为参数,然后将函数依次应用于可迭代对象的前两个元素,得到一个结果,再将这个结果和可迭代对象的下一个元素一起应用于函数,以此类推,直到可迭代对象的所有元素都被处理完,最终返回一个结果。
例如,我们可以使用reduce()
函数计算一个列表中所有元素的和:
from functools import reduce
numbers = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, numbers)
print(result)
除了这些内置的高阶函数,我们还可以自己定义高阶函数。例如,我们可以定义一个函数,它接受一个函数作为参数,并返回一个新的函数,这个新的函数会在每次调用时将输入的参数乘以 2:
def double_function(f):
def wrapper(x):
return f(x) * 2
return wrapper
def add_one(x):
return x + 1
doubled_add_one = double_function(add_one)
print(doubled_add_one(5))
高阶函数的使用可以使我们的代码更加简洁、灵活和富有表现力。它们为我们提供了一种强大的编程工具,让我们能够以更优雅的方式解决各种复杂的问题。