最近在自学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 模块中可用,而不是在内置作用域中可用。