函数式编程

def add(x,y): return x+y lambda x,y:x+y

filter(func,seq)#给定一个对象的序列(seq)和一个“过滤”函数,每个序列元素都通过这个
过滤器进行筛选,保留函数返回为真的对象。

map(func,seq1) 将函数func作用于给定序列seq1的每个元素,并用一个列表来提供返回值,不仅可以用于list,也可以用于np.array()
map(lambda x:x**2,range(6))
map(lambda x,y:x+y,[1,3,5],[2,4,6])
map(None,[1,3,5],[2,4,6]) #[(1,2),(3,4),(5,6)]

reduce(func,seq) #reduce使用了一个二元函数(一个接收待两个值作为输入,进行了一些计算然后返回一个值作为输出),一个序列
reduce(func,[1,2,3]) 等价于 func(func(1,2),3)

def myfunc(a, b):
"Return a-b if a>b, otherwise return a+b"
if a > b:
return a - b
else:
return a + b
vfunc = np.vectorize(myfunc)
vfunc([1, 2, 3, 4], 2)

posted @ 2018-02-03 22:38  blog_hfg  阅读(127)  评论(0)    收藏  举报