欢迎访问宙启技术站
智能推送

Python的高阶函数是什么?如何使用它们?

发布时间:2023-06-23 13:56:53

Python中的高阶函数指可以接受其他函数作为参数或返回一个函数作为结果的函数。它们是函数式编程中特别重要的一种函数类型,具有高度的抽象和灵活性。Python中常用的高阶函数有map、filter、reduce、sorted等。

1. map函数

map函数接受两个参数, 个为一个函数,第二个为可迭代对象,该函数对可迭代对象中每个元素进行操作,并返回一个新的可迭代对象。

def square(x):
    return x**2

res = map(square, [1, 2, 3, 4])
print(list(res))  # [1, 4, 9, 16]

2. filter函数

filter函数接受两个参数, 个为一个函数,第二个为可迭代对象,该函数对可迭代对象中每个元素进行操作,返回值为True或False。最终返回一个新的可迭代对象,该对象中只包含函数返回值为True的元素。

def is_even(x):
    return x % 2 == 0

res = filter(is_even, [1, 2, 3, 4])
print(list(res))  # [2, 4]

3. reduce函数

reduce函数接受两个参数, 个为一个函数,第二个为可迭代对象,该函数对可迭代对象的前两个元素进行操作,返回值与下一个元素再进行操作,以此类推,最终返回一个值。需要使用import functools导入。

import functools

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

res = functools.reduce(add, [1, 2, 3, 4])
print(res)  # 10

4. sorted函数

sorted函数接受一个可迭代对象,并返回一个从小到大排序后的序列。可以使用key参数自定义排序规则。

res = sorted([3, 1, 4, 1, 5, 9, 2, 6])
print(res)  # [1, 1, 2, 3, 4, 5, 6, 9]

以上是Python中一些高阶函数的用法,它们简化了代码,提高了代码的可读性和可重用性。同时,函数作为参数和返回值,也使得代码更具有灵活性,可以适应更多的情况和需要。