三周四次课(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.匿名函数
原文地址:http://13406610.blog.51cto.com/13396610/1978481