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

Python高阶函数:学习map、filter和reduce的用法

发布时间:2023-06-18 17:48:57

作为Python中的高阶函数,map、filter和reduce是非常常用和重要的函数。

## map函数

map函数可以将一个函数应用到一个序列的每个元素上,返回一个新的序列。

new_list = map(func, sequence)

其中,func是一个函数,sequence是一个要进行映射的序列。

示例代码:

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

结果:

[1, 4, 9, 16, 25]

## filter函数

filter函数可以根据某个条件过滤出序列中的元素,返回一个新的序列。

new_list = filter(func, sequence)

其中,func是一个函数,sequence是一个要进行筛选的序列。

示例代码:

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

结果:

[2, 4]

## reduce函数

reduce函数可以对一个序列进行归约操作,即将这个序列中的所有元素通过一个函数进行迭代,得到一个最终结果。

result = reduce(func, sequence)

其中,func是一个二元函数,sequence是一个要进行操作的序列。

示例代码:

import functools

lst = [1, 2, 3, 4, 5]
product = functools.reduce(lambda x, y: x*y, lst)
print(product)

结果:

120

需要注意的是,reduce函数必须在Python2中使用,Python3中已经将reduce函数移到了functools模块中,因此需要使用functools.reduce来调用。

总的来说,map、filter和reduce都是Python中非常实用的高阶函数,掌握它们的用法能够大大提高代码的编写效率。