一、什么是高阶函数
在计算机编程语言中,高阶函数指的是接受函数作为输入或输出的函数。
二、高阶函数的特性
函数本身也可以赋值给变量 变量可以指向函数
f = abs #abs()取绝对值函数,将函数赋给变量f
print(f(-10)) #输出结果-10的绝对值
三、内置高阶函数map()
map():接收两个参数,一个是函数 一个是序列
map()将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列返回
例:对一个序列[-1,3,-4,-5]的每一个元素求绝对值
代码
:
结果
:
例:随机生成10个元素,对每个元素求阶乘。
代码
:
结果
:
四、内置高阶函数reduce()
reduce():把一个函数作用在一个序列上,这个函数必须接收两个参数 reduce()把结果继续和序列的下一个元素做累积计算
reduce(f,[x1,x2,x3,x4]) = f(f(x1,x2),x3),x4)
注意 :
python2中:reduce是内置函数
python3中:from functools import reduce
例:使用reduce函数计算1~10类乘和。
代码
:
结果
:
五、filter过滤函数
和map()类似的,也接收一个函数和一个序列
但是和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True或者False决定保留还是丢弃该元素
六、例题
1、有一个整数列表(10个元素),要求调整元素的顺序
把奇数放在前面 偶数放在后面将用户输入的数字字符串(str)转换为整型(int)数字输出,若输入的数字字符串中包含小数点则转换为浮点型(float)数字输出。
代码
:
结果
:
2、随机生成一个整数列表(10个元素),要求调整元素的顺序
要求:把奇数放在前面,偶数放在后面。
代码 :