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

Python中常见的高阶函数介绍与实例

发布时间:2023-06-06 03:51:35

什么是高阶函数?

高阶函数是指能够将函数作为参数传递的函数,或者返回值是一个函数的函数。简而言之,它是一种将函数视为一等公民的编程范式。

在Python中,高阶函数虽然看似高端大气,但其实是非常常见的,例如map、filter、reduce等函数就是高阶函数。

下面将介绍三种常见的高阶函数及其应用。

1. map函数

map函数是Python内置的一个函数,其作用是对可迭代对象中的每个元素应用一个函数,然后返回映射后的结果。

map函数的基本语法如下:

map(function, iterable, ...)

其中,function是要应用的函数,iterable是可迭代对象,可以是列表、元组、字典等。

下面是map函数的一些应用实例:

将列表中的每个元素平方

def square(x):
    return x ** 2

lst = [1, 2, 3, 4, 5]
result = list(map(square, lst))
print(result)
# 输出 [1, 4, 9, 16, 25]

将列表中的每个元素转化为字符串类型

lst = [1, 2, 3, 4, 5]
result = list(map(str, lst))
print(result)
# 输出 ['1', '2', '3', '4', '5']

2. filter函数

filter函数是Python内置的一个函数,其作用是对可迭代对象中的每个元素应用一个判断函数,返回满足条件的元素所组成的迭代器。

filter函数的基本语法如下:

filter(function, iterable)

其中,function是要应用的判断函数,iterable是可迭代对象,可以是列表、元组、字典等。

下面是filter函数的一些应用实例:

将列表中的偶数过滤出来

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

lst = [1, 2, 3, 4, 5]
result = list(filter(is_even, lst))
print(result)
# 输出 [2, 4]

将列表中长度大于2的字符串过滤出来

lst = ['a', 'ab', 'abc', 'abcd']
result = list(filter(lambda s: len(s) > 2, lst))
print(result)
# 输出 ['abc', 'abcd']

3. reduce函数

reduce函数是Python内置的一个函数,其作用是对可迭代对象中的所有元素依次应用一个函数,返回最终结果。它与map和filter不同,reduce函数最终返回的是一个值,而不是一个迭代器。

reduce函数的基本语法如下:

reduce(function, iterable, initial=None)

其中,function是要应用的函数,iterable是可迭代对象,initial是一个可选参数,表示 个值。

下面是reduce函数的一些应用实例:

求列表中所有元素的和

from functools import reduce

lst = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, lst)
print(result)
# 输出 15

求列表中所有元素的积

lst = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x * y, lst)
print(result)
# 输出 120

需要注意的是,使用reduce函数时需要先导入functools模块。

结语

以上是Python中常见的三个高阶函数,它们对我们日常的Python编程非常有用。当然,除了map、filter、reduce之外,Python中还有很多其他的高阶函数,例如sorted、any、all等,大家可以根据自己的需求进行学习和使用。