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

Python中的高阶函数(即函数作为参数传递或返回值)

发布时间:2023-05-23 05:19:59

Python中的高阶函数是指可以接受其他函数作为参数或返回一个函数作为返回值的函数。高阶函数是函数式编程中的关键概念之一,在Python中广泛应用于各种场景。

Python中的高阶函数有很多,其中一些常用的包括map、filter、reduce、sorted等。

1、map函数

map函数可以接受一个函数和一个可迭代对象作为参数,并将函数应用于可迭代对象的每个元素。它的返回值是一个新的可迭代对象,其中每个元素都是原可迭代对象中对应元素应用函数后的结果。

例如,假设我们有一个列表,我们想将其中的所有元素乘以2并将结果存储在另一个列表中。我们可以这样使用map函数:

lst = [1, 2, 3, 4]
new_lst = list(map(lambda x: x * 2, lst))
print(new_lst)

输出结果为:

[2, 4, 6, 8]

2、filter函数

filter函数可以接受一个函数和一个可迭代对象作为参数,并返回一个新的可迭代对象,其中只包含原可迭代对象中满足函数条件的元素。

例如,假设我们有一个列表,我们想只保留其中的偶数。我们可以这样使用filter函数:

lst = [1, 2, 3, 4]
new_lst = list(filter(lambda x: x % 2 == 0, lst))
print(new_lst)

输出结果为:

[2, 4]

3、reduce函数

reduce函数可以接受一个函数和一个可迭代对象作为参数,并将函数应用于可迭代对象的序列。该函数的返回值是一个最终结果,该结果是原序列中所有元素应用函数后的累积值。

例如,假设我们有一个列表,我们想将其中的所有元素相加。我们可以这样使用reduce函数:

from functools import reduce

lst = [1, 2, 3, 4]
result = reduce(lambda x, y: x + y, lst)
print(result)

输出结果为:

10

4、sorted函数

sorted函数可以接受一个可迭代对象作为参数,并返回一个新的可迭代对象,其中包含原可迭代对象的按照特定条件排序后的元素。

例如,假设我们有一个列表,我们想将其中的所有元素按照从大到小的顺序进行排序。我们可以这样使用sorted函数:

lst = [1, 3, 2, 4]
new_lst = sorted(lst, reverse=True)
print(new_lst)

输出结果为:

[4, 3, 2, 1]

以上是Python中常用的高阶函数。

总的来说,高阶函数在Python中的应用非常广泛,可以用来实现各种各样的操作。掌握高阶函数的使用方法,可以提高代码的简洁性和可读性,同时也能够使我们的程序更加高效。