首页 > 其他 > 详细

学习笔记(11月02日)--高阶函数

时间:2017-11-02 17:58:43      阅读:204      评论:0      收藏:0      [点我收藏+]

三周四次课(11月2日)


1.高阶函数

高级函数就是把函数当成参数传递的一种函数:例如:

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


print(add(-8, 11, abs))

结果:

19

解释:

1,调用add函数,分别执行abs(-8)和abs(11),分别计算出他们的值

2,最后再做和运算


map()函数

map函数是python内置的一个高阶函数,它接收一个函数f和一个list,并把list的元素依次传递给函数f,然后返回一个函数f处理完所有list元素的列表

例子:


def f2(x):
    return x * x


l = [1, 2, 3, 4, 5, 6]
print(map(f2, l))

结果:


[1, 4, 9, 16, 25, 36]

解释:

1,l是一个list,把此list的元素传入函数f2,求每个元素的平方。

2,把最终所有的计算结果合并成一个新的list,就如新的结果所示。


reduce()函数

reduce()函数也是python内置的一个高阶函数。reduce()函数接收的参数和map()类似,一个函数f,一个list,但行为和map()不同,reduce()传入的函数f必须接收两个参数,第一个调用是把list的前两个元素传递给f,第二次调用时,就是把前面两个list元素的计算结果当成第一个参数,list的第三个元素当成第二个参数,传入f进行操作,以后以此类推,并返回最终结果值。

例子:


def f(x, y):
    return x + y


print(reduce(f, [1, 2, 3, 4, 5], 10))

结果:

25

解释:

1,计算a = f(1,2)的值为3

2,计算b = f(a,3)的值为6

3,计算c = f(b,4)的值为10

4,计算d = f(c,5)的值为15

5,计算f(d,10)的值为25

其实就相当于1+2+3+4+10,最后的10是一个默认值,即最终在执行一次。



2.匿名函数


学习笔记(11月02日)--高阶函数

原文:http://13406610.blog.51cto.com/13396610/1978481

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!