python中filter、map、reduce的用法

一、filter函数

功能:把可迭代对象中的每一个值作为参数,通过这些参数依次调用函数,最后返回一个filter对象,里面放着可迭代对象中符合条件的值。

示例:

filter(judge, iterable)
1 def is_odd(n):
2 if n % 2 == 1:
3 return n
4 else:
5 pass
6
7 tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
8 newlist = list(tmplist)
9 print(newlist)

注意:你需要对传入内容进行判断,如果不判断,默认返回传入的所有值。而且你无法返回被修改后的传入值。

二、map函数

功能:把可迭代对象中的每一个值作为参数,通过这些参数依次调用函数,最后返回一个map对象,里面放着函数的返回值。

示例:

map(func, iterable)
1 def judge_func(num):
2 return num+1
3
4 ret = map(judge_func, [1, 4, 5, 7, 8, 9])
5 print(list(ret))

三、filter和map函数的相同点与区别

(一) 相同点

1.filter和map一样,都完整执行了函数

(二) 不同点

1.filter收集的是返回非None的传入值,没办法对传入值修改后返回

2.map收集的是返回值

四、reduce函数

功能:每次向函数中传入两个参数,并把返回值当作下一次要传入的第一个参数

示例:

reduce(func, iterable, starting_value)
1 def add_func(x, y):
2 return x+y
3
4 print(reduce(add_func, range(1, 10)))
‘