python的高阶函数(map,reduce,filter)

Map函数

Map()函数接受两个参数,第一个参数是函数,第二个参数是序列(list,tuple),map将函数依次作用到序列上的每一个元素上,并发结果作为新的list返回

其中map的第一个参数的函数,必须只有一个参数

def fun(x):
    return x*x

if __name__ == '__main__':
    a=map(fun,(1,2,3,4,5,6))
    print a

 

reduce函数

reduce()函数接受两个参数,第一个参数为函数,第二个参数为序列,reduce将结果与序列的下一个元素累计计算

其中reduce的第一个参数的函数,必须有两个参数

def fun(s,x):
    return s +x
if __name__ == '__main__':
    a=reduce(fun,['p', 'y', 't', 'h', 'o', 'n'])
    print a

filter函数

filter()函数接受两个参数,第一个参数为函数,第二个参数为序列,filter将函数依次作用到序列上的每一个元素,然后根据返回值判断true或者false,决定保留还是丢弃该元素

def fun(x):
    return x%2==1
if __name__ == '__main__':
    a=filter(fun,(1,2,3,4,5,6,7))
    print a

 

lambda

lambda是一个表达式,函数体比def简单很多,它起到函数书写的作用

f= lambda x,y:x*y
print f(4,5)
posted @ 2017-07-05 17:36  hellowcf  阅读(160)  评论(0编辑  收藏  举报