函数式编程

python下的函数式编程

   函数式编程允许有变量;支持高阶函数(函数可以作为变量传入);支持闭包(可以返回函数);有限度地支持匿名函数

高阶函数

1.定义:能够接收函数作为参数的函数就是高阶函数,下面举个例子好理解一下。

1 def length(x,y,f):
2     return f(x)+f(y)
3 length('ab','abc',len)

2.内置高阶函数

 1) map(func,list) :将函数作用与list的每一个元素,返回的list。例子如下:

1 def format_name(s):
2     return s.lower().capitalize()
3 print map(format_name,['adam', 'LISA', 'barT'])
4 
5 输出结果为:['Adam', 'Lisa', 'Bart']

2)  reduce(func,list) :与map()不同,func是必须是接收两个参数的函数,对list中的每个参数进行调用,返回最终结果。累加或者累乘就可以利用这个。例子如下:

def multiply(x,y):
    return x*y
reduce(multiply,[1,2,3,4,5]

返回结果: 120

3)  filter(func,list) :英文意思是过滤,很形象。这个函数的作用就是针对list中的每个元素,用func函数进行判断true 和false,然后根据过滤掉判断结果是false的元素,将判断结果是true的元素组成新的list,返回。例子如下:

from math import sqrt
def is_sqr(x):
    return sqrt(x)%1 == 0
print filter(is_sqr, range(1,101))

返回结果: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 

 

 

 

 

  

posted @ 2017-06-07 23:16  小白空空酱  阅读(60)  评论(0编辑  收藏  举报