高阶函数——map:
概念:map() 函数接收两个参数,一个是函数,一个是序列; 它将传入的函数依次作用到传入序列的每个元素上,并且把结果作为新的序列返回。 返回的是一个对象,要用列表接收!!!
通过几个练习题来理解map函数的用法:
1. 对序列[-4,5,-7,-9,6]每个元素求绝对值:
执行结果:
这里注意一下“ abs “是python内置的求元素绝对值的函数。
2. 产生10个10以内的随机数的序列,求这个序列中每个数的阶乘:
## 第一步:定义一个求阶乘的函数:
## 第二步:产生序列:
## 第三步: 求序列中每个元素的阶乘:
执行结果:
3. 用户接收一串字符串‘1 3 5 7 8’ 将该字符串中所有数字转化为整型:
执行结果:
高阶函数——ruduce:
概念:reduce函数必须有两个参数:一个函数、一个序列 ;然后使函数作用到序列上:先让函数作用在序列的前两个数值上, 函数所得的结果再作为序列的值,与序列的第三个数再作为函数的 输入,就这样依次类推……
python2中:reduce是内置函数。
python3中:需要导入相应的模块“ from functools import reduce”。
还是 通过几个练习来理解reduce函数
1. 求序列中所有数相乘的结果:
执行结果:
2. 求序列中所有数的和:
执行结果:
高阶函数——filter:
概念:人称过滤函数,和map函数类似,也接受一个函数和一个序列,不同之处在于,filter 在函数作用在序列的每一个数值时,若函数返回为True才保留,函数返回为False则丢弃(map函数一般用于运算、改变序列,filter函数一般用于对序列进行筛选)。
还是通过几个练习题来对filte函数加深理解:
1. 找出指定序列中的偶数:
执行结果:
2. 找出序列 [1,100] 中的质数:
执行结果:
高阶函数——sorted:
概念:Python 内置的 sorted() 函数就可以对 list 进行排序; 此外,它还可以接收一个比较函数来实现自定义的排序。
练习1. 对列表进行排序:
执行结果:
还有一个函数sort可以对序列进行排序,不过不同之处在于sort函数直接在原序列上排序,改变了原来列表的顺序:
执行结果:
练习二: 对嵌套列表进行排序
## 定义一个列表嵌套元组的数据结构如下:
## 默认方式:按照列表中序列的第一列元素 “商品名称” 进行排序
执行结果:
## 自定义方式排序1:要想按照列表中序列单项的第二列元素“重量”进行排序:
执行结果:
## 自定义方式排序2: 按照序列中单项中的第三列“价格”进行排序
执行结果:
## 自定义方式排序3: 先按照价格排序,若遇到价格相等的情况,将价格相等的按照重量进行排序。
执行结果:
练习三:
# 第一步,写出规定输入格式的代码:
# 第二步,将输入的数组种的序列按照题目要求进行自定义排序
# 第三步: 按照指定的输出格式打印:
执行结果:
练习四: