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)))
‘