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

用Python编写高阶函数:map、reduce、filter的使用方法

发布时间:2023-06-25 10:12:11

Python语言中,高阶函数map、reduce、filter是常用的函数,可以大大简化代码的编写过程。以下是它们的使用方法。

map()函数

map()函数对一个列表或其他可迭代对象的每个元素执行相同的操作,并将操作后的结果返回为一个新的列表。它的语法格式如下:

map(function, iterable, ...)

其中,function是对每个元素要执行的操作,iterable是要操作的可迭代对象。这个函数的返回值是一个新的列表。

下面是一个将列表中的数值每个元素都平方,并返回新列表的示例:

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

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

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

reduce()函数

reduce()函数是对可迭代对象的所有元素执行相同的二元运算,以得到一个结果。它的语法格式如下:

reduce(function, sequence[, initial])

其中,function是一个二元运算函数,它的前两个参数是sequence序列中相邻的两个元素,initial是可选的初值,如果提供了初值,会优先使用初值作为 项参与运算。reduce()函数完成后返回一个单个的结果。

下面是一个将列表中的数值递归相加得到总和的示例:

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

sum = reduce(lambda x, y: x + y, lst)

print(sum)   # 15

filter()函数

filter()函数会根据你给出的判断函数对指定序列进行过滤,返回符合条件的元素组成的新的序列。它的语法格式如下:

filter(function, iterable)

其中,function是一个判断函数,它的参数是序列中的每个元素,返回值为True或False。返回值是过滤出来的新序列。

下面是一个过滤出一个列表中的偶数元素的示例:

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

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

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

以上就是Python中map、reduce、filter函数的使用方法。它们是Python语言中极为强大的高阶函数,能够大大的简化代码编写过程,提高开发效率。