纠纷奇闻作文社交美文家庭
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

Python函数进阶高阶函数

2月6日 火云谷投稿
  高阶函数什么是高阶函数
  高阶函数就是能够把函数当成参数传递的函数就是高阶函数,换句话说如果一个函数的参数是函数,那么这个函数就是一个高阶函数。
  高阶函数可以是你使用def关键字自定义的函数,也有Python系统自带的内置高阶函数。自定义一个高阶函数
  我们下面的例子中,函数senior的参数中有一个是函数,那么senior就是一个高阶函数;函数tenfold的参数不是函数,所以tenfold就只是一个普通的函数。定义高阶函数defsenior(func,container):将容器中的数据依次放入函数中进行运算,将结果返回到迭代器中,最后返回迭代器。lstlist()foriincontainer:lst。append(func(i))returniter(lst)定义普通的功能函数deftenfold(num):十倍器将数据乘10,返回结果。returnnum10定义一个列表lst〔10,20666,msr〕使用高阶函数itsenior(tenfold,lst)print(list(it))〔100,206660,msrmsrmsrmsrmsrmsrmsrmsrmsrmsr〕常用的内置高阶函数
  函数
  功能作用
  map
  处理可迭代对象中的数据,将处理的结果返回到迭代器中。
  filter
  过滤可迭代对象中的数据,将过滤好的数据返回到迭代器中。
  reduce
  处理可迭代对象中的数据,将最终的结果返回出来。
  sorted
  排序可迭代对象中的数据,将排序好的结果返回出来。map函数
  语法:map(function,Iterable)参数说明
  function:函数,可以是自定义函数或者是内置函数;
  iterable:可迭代对象,可迭代性数据。(容器类型数据和类容器类型数据、range对象、迭代器)功能
  把可迭代对象中的数据一个一个拿出来,然后放在到指定的函数中做处理,将处理之后的结果依次放入迭代器中,最后返回这个迭代器。实例
  将列表中的元素转成整型类型,然后返回出来。lst〔1,2,3,4〕使用常规的写法newlstlist()foriinlst:newlst。append(int(i))print(newlst)〔1,2,3,4〕使用map函数实现itmap(int,lst)newlstlist(it)print(newlst)〔1,2,3,4〕
  列表中的每一个数依次乘2的下标索引1次方。使用自定义的函数,配合实现功能。lst〔1,2,3,4〕普通的方法,利用左移newlstlist()foriinlst:resiinewlst。append(res)print(newlst)〔2,8,24,64〕使用map函数先定义一个左移函数,自定义的函数必须是一个带参函数并且有返回值deffunc(num):returnnumnumnewlstlist(map(func,lst))print(newlst)〔2,8,24,64〕使用lambda简化newlstlist(map(lambdanum:numnum,lst))print(newlst)〔2,8,24,64〕filter函数
  语法:filter(function,iterable)
  参数的意义和map函数一样功能
  filter用于过滤数据,将可迭代对象中的数据一个一个的放入函数中进行处理,如果函数返回值为真,将数据保留;反之不保留,最好返回迭代器。实例
  保留容器中的偶数lst〔11,2,3,34,4,4,55〕常规写法newlstlist()foriinlst:ifi20:newlst。append(i)print(newlst)〔2,34,4,4〕使用filter函数deffunc(num):ifnum20:returnTruenewlstlist(filter(func,lst))print(newlst)〔2,34,4,4〕filterlambdanewlstlist(filter(lambdanum:Trueif(num20)elseFalse,lst))print(newlst)〔2,34,4,4〕reduce函数
  语法:reduce(function,iterable)
  参数含义与map、filter一致。功能
  计算数据,将可迭代对象的中的前两个值放在函数中做出运算,得出结果在和第三个值放在函数中运算得出结果,以此类推,直到所有的结果运算完毕,返回最终的结果。
  根据功能我们就应该直到,reduce中的函数需要可以接收两个参数才可以。实例
  reduce函数使用需要先从标准库functools中导入
  将列表中的数据元素组合成为一个数,fromfunctoolsimportreducelst〔2,0,6,6,6〕常规方法charstr()foriinlst:charstr(i)print(int(char))20666使用reduse函数deffunc(x,y):returnx10yresreduce(func,lst)print(res)20666reducelambdaresreduce((lambdax,y:(x10y)),lst)print(res)20666sorted函数
  语法:sorted(Iterable,keyfunction,reverseFalse)参数说明
  iterable:可迭代对象;
  key:指定函数,默认为空;
  reverse:排序的方法,默认为False,意为升序;功能
  如果没有指定函数,就单纯的将数据安札ASCII进行排序;如果指定了函数,就将数据放入函数中进行运算,根据数据的结果进行排序,返回新的数据,不会改变原有的数据。
  注意,如果指定了函数,排序之后是根据数据的结果对原数据进行排序,而不是排序计算之后的就结果数据。实例
  将列表中的数据进行排序。lst〔1,23,34,5,6,342,12,12,2345,3〕使用列表的内置函数进行排序,默认升序lst。sort()print(lst)〔3,1,5,6,12,12,23,34,342,2345〕降序排序lst。sort(reverseTrue)print(lst)〔2345,342,34,23,12,12,6,5,1,3〕lst〔1,23,34,5,6,342,12,12,2345,3〕使用sorted进行排序newlstsorted(lst)print(newlst)〔3,1,5,6,12,12,23,34,342,2345〕print(lst)〔1,23,34,5,6,342,12,12,2345,3〕
  还有一点就是sorted函数可以将数据放入函数中进行处理,然后根据结果进行排序。lst〔1,23,34,5,6,342,12,12,2345,3〕按照绝对值进行排序newlstsorted(lst,keyabs)print(newlst)〔1,3,5,6,12,12,23,34,342,2345〕按照除以10的余数进行排序deffunc(num):returnnum10newlstsorted(lst,keyfunc)print(newlst)〔1,342,12,12,23,34,5,2345,6,3〕可以看到,我们指定函数之后排序的结果既不是原数据的绝对值、也不是原数据除以10的余数,而是根据这两种计算结果对原数据进行了排序。sort和sorted
  既然有了列表的内置函数sort,为什么我们还要使用sorted函数呢?sorted可以排序一切可迭代对象,但是sort只是列表的内置函数,只能对列表进行排序;sorted排序返回新的数据,不改变原数据,sort改变了原数据;sorted可以指定函数,根据函数的计算结果、按照某一种方式进行排序,但是sort只能单纯的根据数字大小和ASCII进行排序。总结
  高阶函数就是将函数作为参数的函数。map(Function,Iterable)(将可迭代性数据中的元素一一取出放入函数中进行运算在将结果返回,最后返回的数据类型是迭代器)filter(Function,Iterable)(过滤数据,将可迭代性数据放入函数中进行运算,结果为真将数据返回,反之舍弃,最会返回的数据类型是迭代器)reduce(Function,Iterable)(计算数据,将可迭代型数据中的前两个元素拿出放入函数中进行运算将结果在与后一个元素进行运算,最后返回最终的结果)sorted(Iterable,〔keyFunction〕,〔reverseBool(False(default)True)〕)(将可迭代型数据进行排序,或将可迭代型数据放入函数中进行运算将结果进行排序返回)
  文章来自https:www。cnblogs。commsr20666p16188820。html
搜索 投诉 评论 转载

贾跃亭的前世今生……新一代ThinkPadP15v正式开启预热,专业级硬件实力护8月20日,ThinkPad官方微博公布了一张关于新一代ThinkPadP15v的海报,正式开始新的专业创意图形工作站预热。在海报中强调,ThinkPadP15v将搭载了高性能……全网最详细的DockerCompose详细教程dockercompose是什么?compose、machine和swarm是docker原生提供的三大编排工具。简称docker三剑客。DockerCompose……2021欧洲杯期间!海信U7U8系列全球销售额暴增200随着欧洲杯已经结束,此时作为欧洲杯赞助商之一的海信,就公布了赞助欧洲杯期间的首轮成绩战报。分别给出了品牌维度和市场维度的两项数据,根据海信官方给出的数据显示,在品牌维度上,海信……高通和中兴通讯实现5G毫米波里程碑e公司讯,高通技术公司和中兴通讯(000063)8月27日宣布,为配合和支持IMT2020(5G)推进组制定的支持200MHz载波带宽的5G毫米波测试和部署需求,双方成功展示了……行业最顶级屏幕!旗舰机锁门员小米11全面升级,你还在嫌贵?近日,小米的新品发布会上,雷军携满满诚意带来了震撼全场的小米11。被米粉们称为弥补短板、不惜一切代价打造出来的小米又一全新力作,小米11究竟价值几何?让我们来一起看一看。……六月六为什么要晒家谱?(唐僧师徒晒经书)据说,六月六晒家谱,是根据《西游记》中,唐僧晒经书的那一劫发展而来。看过《西游记》的观众都知道,唐僧过通天河的时候,老龟载他们师徒一行过河。在途中老龟就……RC8中国兄弟?春风亮相全新仿赛概念摩托车这几年国产摩托车品牌可谓是突飞猛进,不只在中小排量市场上推出许多亮眼的车型,在中大排气量的市场上也日渐累积作品,其中与KTM有着技术合作的CFMoto春风摩托,近日就曝光一台相……国内首家食物银行入驻淘宝专供临期食品,只需1分钱9月16日,国内首家食物银行淘宝店绿洲盛食社正式开业,店铺内的临期食品都来自商家捐赠。有需要的人群,可以在淘宝App上搜索绿洲盛食社或绿洲食物银行,免费下单,包裹送货上门,不用……Python函数进阶高阶函数高阶函数什么是高阶函数高阶函数就是能够把函数当成参数传递的函数就是高阶函数,换句话说如果一个函数的参数是函数,那么这个函数就是一个高阶函数。高阶函数可以是你使用de……显卡何时能回归原价?RTX30Super或在明年发布芯研所:移动版的RTX30Super有消息了,将在明年初登场,或许会在CES2022上发布。随着新产品的到来,显卡价格会趋于正常。显卡缺货的时期可能有不少人关注RTX30……可以准备结案陈词了?iPhone13系列终于装上高刷新率大电自从高刷新率在安卓手机上逐渐普及以后,每一代iPhone发布的时候,用户呼声最高的就是就是要给它那块好屏幕上高刷新率,这个高刷新率是分时期的,以前最早的是90Hz,而现在起步就……
2018AIIA人工智能开发者大会,跟思必驰一起探索AI场景索尼WF1000XM3凭啥力压AirPods?续航打平手音质比MagSafe卡包更硬核的,只有它了电脑安装迅雷极简绿色版图文教程新能源汽车发展趋势持续加快,国内的充电桩产业发展如何?量子通信安全性讨论升级,中科大摆下擂台窃取密钥者奖百万当风轻借力,一举入高空,纽恩泰3000终极实训中心刮起工匠之LingOS灵犀系统首次亮相,全球银标正式迈入2。0全链路生她是印度最好命的女人,不能生育,却被首富老公宠上天,为何?万元投影仪对比评测!海信88L5V和峰米4kmax区别在哪脑机接口要开始应用了?马斯克Neuralink有望明年用于人向印度学习?美国火箭发射时水平漂移,摄影师差点找不到火箭
精致的利己主义者的表现收条和欠条有什么区别品牌逐渐化未来经理或将取代品牌经理是什么让你一直快乐浅析京东小卖家如何提高客单价十二星座男能把女友宠到什么程度?摩羯壁咚吻,狮子是亚洲醋王!秋季钓鱼调几钓几最合适?郭德纲个人资料简介(德云社个人资料简介)热博聚热点网 手机上怎么样进行微信双开修养名言关于修养的名人名言态度决定一切手机网上聊天赚钱是真的吗这几个聊天软件居然可以日

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形