python学习笔记11——高阶函数

高阶函数的室参是一个函数名,返回值是一个函数。
1.abs函数:求绝对值
在这里插入图片描述
abs函数可以用来直接求绝对值,函数本身也可以赋值给变量,变量也可以指向函数
在这里插入图片描述
传递的参数可以是函数名,返回值是函数f(x),f(y)。

内置高阶函数

map函数
map()函数接收两个参数,一个是函数一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的序列返回。
在这里插入图片描述
map函数通过接受的函数对接受的序列的每一个值进行处理。
reduce函数
reduce函数同样是接受两个参数,一个是函数,一个是序列,但这个接受的函数必须从接受的序列中接受两个参数,之后把函数执行的结果继续和序列的下一个元素作累积计算。
使用这个函数必须先导入一个模块:

from functools import reduce

在这里插入图片描述
比如这个函数,事先写一个两相加的函数add,reduce函数接受add函数和列表[1,2,3,4,5]之后add函数先接收前两个参数,进行相加,得出结果后在与下一个参数进行相加,以此类推。
filter过滤函数
和map()类似,也接收一个函数和一个序列,但fileter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False来决定保留还是丢弃该元素。
在这里插入图片描述
输出0到9的所有偶数,filter根据函数返回值的真假来决定是否保留元素。

sorted函数
sorted函数一般用来对序列进行排序。
定义一个序列,假设第一列表示商品名称,第二列表示商品数量,第三列表示商品价格,接下来要对这个序列进行排序
在这里插入图片描述
定义两个函数,一个按照数量进行排序,另一个按照数量进行排序。
在这里插入图片描述
按数量升序排序
在这里插入图片描述按价格升序排序。
在这里插入图片描述
这里我们看出,key后面的函数决定排序的方式,大家可以根据自己的需求定义函数。

匿名函数

匿名函数的关键字:
lambda 型参 : 返回值

冒号前面是形参,冒号后面是返回值
在这里插入图片描述
如这个函数,型参为x,y返回值为x+y,再用reduce函数传递参数,就可以直接对数字进行求和。
lambda函数还有很多用法,这里就不一一列举了。

猜你喜欢

转载自blog.csdn.net/qq_41961805/article/details/88970627