一、高阶函数
- 高阶函数:把一个函数名以实参的形式,传给这个函数的形参,这个函数就称为高阶函数。
- 函数本身也可以赋值给变量,变量也可以指向函数。
1、 map
- map将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列返回
- map(): 接收两个参数:一个是函数 ,一个是序列。map(函数,序列)
- Python3下的map()函数返回的是map对象,而map对象又是一个迭代器iterator,不再是list,故需要使用list()强制转换为列表。
- Python2下的map()函数直接返回的是列表。
1.1 对一个序列[-1,3,-4,-5]的每一个元素求绝对值
- abs : 求绝对值
输出:
1.2 对序列每个元素求阶乘
输出:
2、reduce
- reduce把一个函数作用在一个序列上,reduce把结果继续和序列的下一个元素做累积计算,其效果为:reduce(f,[x1,x2,x3,x4]) = f(f(x1,x2),x3),x4)
- reduce必须接受两个参数:第一个参数是一个函数,第二个参数是一个可迭代类型。而函数(第一个参数)也必须接受两个参数。
- Python3下的reduce移到了functools模块,使用之前需要 from functools import reduce
- Python2中的reduce是内置函数。
2.1 累乘:1到9