map,filter,reduce的应用方法

       最近在自学python,不知道怎么入手,就花了好几十大洋买了《python学习手册》来看,记忆力不好,怕以后忘记了,写下来当是笔记吧。也可以供那些python新手又没买这本书的人做参考哈~

1.map把第一项传递给函数并收集结果

counters = [1,2,3,4]
 
def  inc(x):return x + 10
 
list(map(inc, counters))
list(map((lambda x:x+10), counters)) #另一种写法

得到的结果是:[11,12,13,14]

map对每个列表中的元素都调用了inc函数,并将所有的返回值收集到一个新的列表中。

 

2.filter收集那些函数返回一个true值的项

list(filter((lambda x: x > 0), range(-5, 5))) #返回结果:[1,2,3,4]

 

3.reduce 通过对一个累加器和后续项应用函数来计算一个单个的值

from functools import reduce
 
reduce((lambda x, y: x + y), [1,2,3,4]) #得到结果:10
 
reduce((lambda x, y: x * y), [1,2,3,4]) #得到结果:24

注意:reduce 在python 3.0的functools 模块中可用,而不是在内置作用域中可用。

你可能感兴趣的:(python,map,filter,reduce)