这三种方法是函数式编程语言中常见的高阶函数,它们主要用于对列表等可迭代对象进行处理。
- Map方法:Map方法会对一个列表中的每个元素应用一个函数,并返回新的列表。新的列表包含了每个应用了函数的元素。
例如,以下代码将列表中的每个元素都加上1,生成新的列表。
old_list = [1, 2, 3]
new_list = list(map(lambda x: x+1, old_list))
print(new_list)
- Reduce方法:Reduce方法会对一个列表中的所有元素依次应用一个函数,得到一个最终结果。Reduce方法可以用于累加器等操作。
例如,以下代码使用reduce方法对列表中的元素进行累加。
from functools import reduce
old_list = [1, 2, 3]
sum = reduce(lambda x, y: x+y, old_list)
print(sum)
- Filter方法:Filter方法会对一个列表中的每个元素应用一个函数,如果函数返回True,则保留该元素,否则将其从列表中删除,最终返回一个经过过滤的列表。
例如,以下代码使用filter方法保留列表中的偶数。
old_list = [1, 2, 3, 4, 5, 6]
new_list = list(filter(lambda x: x%2==0, old_list))
print(new_list)
综上所述,map方法会对每个元素应用一个函数,返回一个新的列表;reduce方法会对所有元素依次应用一个函数,得到一个最终结果;filter方法会对每个元素应用一个函数,返回一个经过过滤的列表。