码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-11-02 18:08:58      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:学习笔记   python培训   

三周四次课(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日)--高阶函数

标签:学习笔记   python培训   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!