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中非常实用的高阶函数,掌握它们的用法能够大大提高代码的编写效率。
