财务大数据-Python基础 课件 1.10高阶函数_第1页
财务大数据-Python基础 课件 1.10高阶函数_第2页
财务大数据-Python基础 课件 1.10高阶函数_第3页
财务大数据-Python基础 课件 1.10高阶函数_第4页
财务大数据-Python基础 课件 1.10高阶函数_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高阶函数课前回顾函数的参数:位置参数、默认参数、可变参数、命名关键字参数可变参数:可变位置参数(*args)接收元组、可变关键字参数(**kwargs)接收字典命名关键字参数:在没有可变位置参数时,需要使用分隔符*参数组合顺序:位置参数、默认参数、可变位置参数、命名关键字参数、可变关键字参数变量作用域:局部作用域、全局作用域global:把函数内的局部变量提升为全局变量目录01020304什么是高阶函数filter函数map函数reduce函数01什么是高阶函数什么是高阶函数高阶函数:可以调用其他函数作为参数的函数。代码#将print函数赋值给变量ff=print#变量f等同于print函数的功能和性质,相当于给print函数取了别名f('货币资金')#输出结果:货币资金代码#查看变量f的类型print(type(f))#输出结果:builtin_function_or_method(内置函数)变量可以指向函数,函数的参数能够接收变量,那么,一个函数就可以接收另一个函数作为参数,这种函数被称为高阶函数。什么是高阶函数代码#自定义函数deffunc(a,function):returnfunction(a)#将print函数作为参数传递,返回-1func(-1,print)#将abs函数作为参数传递,返回1print(func(-1,abs))常用高阶函数包括filter()函数、map()函数、reduce()函数,均用于可迭代对象;高阶函数通常与匿名函数(lambda表达式)联合使用。02filter函数

filter函数filter函数:用于过滤不符合条件的元素;语法:filter(function,可迭代对象)→返回一个可迭代对象该函数接收两个参数,第一个为函数,第二个为可迭代对象,对可迭代对象中的每个元素调用function函数,最后返回调用结果为True的元素。代码#筛选出所有偶数num=[2,5,8,12,15]#filter函数与匿名函数result=filter(lambdax:x%2==0,num)#list()将返回的可迭代对象转为列表print(list(result))filter函数说明:甲公司1-4月收入分别为12万元、15.5万元、14万元、17万元。要求:使用filter函数筛选出收入额在15万元以上的所有月份。示例1代码#创建一个字典income接收1-4月收入income={'1月':120000,'2月':155000,'3月':140000,'4月':170000}#filter函数(默认使用键值来筛选)result=filter(lambdax:income[x]>150000,income)#list()将返回的可迭代对象转为列表print(list(result))输出结果:['2月','4月']03map函数map函数map函数:根据提供的函数对指定序列做映射;语法:map(function,可迭代对象1,可迭代对象2,…)→返回一个可迭代对象该函数第一个参数是一个函数,剩下的参数是一个或多个可迭代对象,以可迭代对象中的每一个元素调用function函数,返回的可迭代对象包含每次调用function函数的返回值。代码num=[2,5,8,12,15]#map函数与匿名函数:列表中每个元素均乘10result=map(lambdax:x*10,num)#list()将返回的可迭代对象转为列表print(list(result))#如果传入多个可迭代对象,要求包含的元素个数相同,若个数不同,多出的元素不会调用函数。map函数说明:企业所得税法规定,企业发生的符合条件的广告费支出,不超过当年销售收入15%的部分,准予当年扣除,甲、乙、丙、丁四家公司本年度销售收入及广告费分别如下:income=[2450000,2880000,3240000,3540000]expense=[300000,450000,480000,540000]要求:使用map函数计算各公司本年准予税前扣除的广告费额度。示例2代码#创建列表接收收入和广告费金额income=[2450000,2880000,3240000,3540000]expense=[300000,450000,480000,540000]#map函数与匿名函数:result=map(lambdax,y:yifx*0.15>yelsex*0.15,income,expense)#list()将返回的可迭代对象转为列表print('广告费税前扣除额为:',list(result))输出结果:广告费税前扣除额为:[300000,432000.0,480000,531000.0]04reduce函数reduce函数reduce函数:对参数可迭代对象中的元素进行累积,通常用于累加、累乘;语法:reduce(function,可迭代对象,初始值)→返回计算结果reduce依次从可迭代对象中取一个元素,和上一次调用function的结果做参数再次调用function。function、可迭代对象:必选参数;初始值:为可选参数,若提供初始值参数,function函数先对初始值和可迭代对象中的第1个元素进行操作,得到的结果再与第2个元素用function函数运算,最后得到一个结果。注意python3中reduce在内置模块functools内部,所以需要先引入functools模块。reduce函数代码#引入functools模块importfunctools#调用reduce计算1-5累加num=[1,2,3,4,5]result=functools.reduce(lambdax,y:x+y,num)print(result)输出结果:15[1,2,3,4,5]reduce(func,num)lambdax,y:x+y第1次计算:1+2=3第2次计算:3+3=6第3次计算:6+4=10第4次计算:10+5=15reduce函数说明:甲公司1-4月收入分别为12万元、15.5万元、14万元、17万元。要求:使用reduce函数计算1-4月收入总额。示例3代码#引入functools模块importfunctools#创建列表存储收入值income=[120000,155000,140000,170000]#reduce函数result=functools.reduce(lambdax,y:x+y,income)#打印计算结果print(result)输出结果:585000课堂小结高阶函数:一个函数可以接收另一个函数作为参数filter()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论