python 中map,reduce和filter函数
一、map 函数
usage: map(func, seq)
函数主要接收两个参数,一个是函数,一个是序列,map函数是将函数依次作用在序列上,python2 map函数会返回一个序列,而python3则是返回一个map object, 可以用list输出结果。
def f(x): return x*x list1=map(f,[1,2,3,4,5]) //python2输出结果 list1=[1,4,9,16,25]
python 3中map返回一个可迭代的对象,可以用next(list1)查看结果
二、reduce函数
usage: reduce(func,seq)
reduce同样也是接收两个参数,一个是函数,但是这个函数必须要求两个参数,reduce将函数的结果和下一个参数继续做运算,最后返回一个值。python3没有reduce这个模块,需要先导入functools 模块。
#一行函数实现求累加 reduce(lambda x,y:x+y,range(1,10)) #求最大值 f=lambda x,y: x if(x>y) else y reduce(f,[34,31,43,524,634,7,242])
三、filter函数
usage:filter(func,seq)
对seq中的元素依次根据func函数进行过滤,将执行结果为True(!=0)的值组成一个(list/tuple/string)返回,过滤掉结果为False的函数。
def div(x): return x%2 n=filter(div,range(5)) #输出 n=[1,3]
在python3 filter返回依然是一个可迭代对象,用法类似于map函数
posted on 2017-08-17 16:34 孤舟蓑笠翁_EmilyNiu 阅读(167) 评论(0) 收藏 举报
浙公网安备 33010602011771号