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

Python函数的高阶函数应用(例如map、filter、reduce等)

发布时间:2023-06-18 15:03:02

Python函数的高阶函数是指将函数作为参数或返回值的函数。这类函数通常被称为高阶函数,它们非常重要,因为它们可以让我们将抽象的计算过程标注出来,并使得代码更加模块化,简洁、易读、易维护。

本文主要介绍Python中几个常用的高阶函数——map、filter和reduce。

一、Map函数

Map函数是Python的内置高阶函数,它将一个函数作用于一个可迭代对象的每一个元素,并将结果作为一个新的可迭代对象返回。

语法格式:

map(function, iterable, ...)

其中,function指定了对iterable中每个元素执行的函数;iterable可以是一个列表、元组等序列类型的对象,也可以是其他可迭代对象。

示例:

将列表中元素平方,并返回平方后的新列表。

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

squared_lst = map(lambda x: x**2, lst)

print(list(squared_lst))   #[1, 4, 9, 16, 25]

二、Filter函数

Filter函数也是Python内置的高阶函数之一,它返回一个可迭代对象,其中包含了函数function返回True的元素。

语法格式:

filter(function, iterable)

其中,function是一个返回布尔值的函数,用于指定筛选条件;iterable是一个可迭代对象,包含要被筛选的元素。

示例:

筛选出列表中的偶数,并返回一个新的列表。

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

even_lst = filter(lambda x: x%2==0, lst)

print(list(even_lst))   #[2, 4]

三、Reduce函数

reduce函数也是Python内置的高阶函数之一,它对一个序列进行迭代操作,将结果返回给下一次迭代,最后只返回一个结果值。

语法格式:

reduce(function, iterable[, initializer])

其中,function是一个有两个参数的函数,用于累计操作;iterable是一个可迭代对象,包含要进行累计操作的元素;initializer是可选的,用于设置初始值。

示例:

计算列表中所有元素的乘积。

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

product = reduce(lambda x, y: x*y, lst)

print(product)   #120

以上就是Python中常用的几个高阶函数——map、filter和reduce的介绍,它们都可以大幅节约我们的代码量,并使我们的代码更加简洁、易懂。