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)    收藏  举报

导航