Day17水晶龙舟和减少狮大战海盗
有一只运送藏宝图的龙舟在海上自由自在的徜徉
(高阶函数之map:map(fn,lsd1,[lsd2]):)这时突然有只长长的小船来到船尾,目测来着不善(第二个参数:lsd1 --> 序列对象(字符串、range、列表...))龙头念咒急急如律令,这时天降雄狮到船尾(第一个参数:fn --> 函数对象)龙舟立刻变成水晶状,龙嘴渐渐张开。海盗一个接一个被雄狮吸入口中,排泄到龙舟上时也变成透明状,按先后顺序坐在龙舟上。由于龙嘴张开,水晶海盗可以一个一个的从龙嘴爬出。(功能:将fn函数作用于lsd1中的每一个元素上,将每次执行的结果都存入到一个map对象中返回给程序;【注意】:得到的这个map对象属于一个迭代器对象,属于惰性序列的范畴print(list(map(int,lt))))这时又同时来了两条船,他们并排着来到龙舟尾部,雄狮从每只船上抓一个,左右手各拿一只同时放入口中。不一会功夫,来自两个不同船上的海盗就融合成一个水晶人(res_map = map(lambda x,y:x + y,lt1_map,lt2))这时又连着开来好几只海盗船,龙舟一看情况不妙,赶紧打信号弹,从放棵兔子马戏团(reduce函数属于functools模块中的函数,所以需要先导入functools模块,再使用代码如下:from functools import reduce)召集来减少狮(高阶函数之reduce)它有两颗球,1号,2号。它能先把一个船上的海盗装在1号,2号球里,然后进行发功,2号球里的海盗就到1号球里去融合,然后船上的下一个海盗就到了2号球里,然后狮子再发功,再进入一号球中融合。最后,所有的海盗融合完毕,最后就融合成一个海盗了(功能:先将lsd中的第一和第二个元素分别取出给到fn中参与运算,将运算以后的值和lsd中的第三个元素再次传入给到fn参与运算,以此类推...)(print(reduce(lambda x,y: x * 10 + y,map(int,str1))))这样好多船上的海盗就被消灭了。这时水晶龙舟有个海盗说,其实有很多海盗都是被逼的,他们都是平民被抓取做海盗的,希望龙舟能解救他们一把。原来如此,水晶龙舟立刻又发信号弹,不一会一条水晶龙舟开过来,舟位站着一个拿着大筛子的雄狮(高阶函数之filter)雄狮肩头站着一个女警察,她说可以了,那么这个海盗就可以通过滤网坐到水晶龙舟上(filter函数:过滤数据,最终返回给程序一个filter对象(惰性、迭代器对象))同时该海盗将变成透明海盗,而且这条龙舟的龙头也是张开嘴的(将lsd中的每一个元素都给到fn函数;如果fn函数的执行返回True,那么就保留此元素到filter对象中,如果fn函数的执行返回False,那么就舍弃此元素,不保留到filter对象中,最终filter函数执行完毕了,返回给程序一个filter类型对象(迭代器对象)。)(print(list(filter(lambda x: len(x) > 5,lt1))))
地图龙舟上拉满了水晶海盗,但他们高低不一,看起来不美观。所以想用给表链排列的书夹给他们排列好。但是过滤龙舟不同意了。他说那个书夹只能给大表链排列高低,而且是在原大表链上操作的,万一不满意的话就改不了了(对于list中的sort函数而言:其执行完毕之后会影响到原本的这个list中的内部结构(内部的元素位置发生变化了))所以我建议还是用双蛇洞里的万能书夹吧。它能给列表和字典排序,而且还能返回一个副本

(对于sorted函数而言:其执行完毕之后会返回给程序一个新的list对象(记录排序之后的数据结构),原本的容器对象不会发生变化)(lt4 = sorted(lt3,key=len,reverse=True)
lt6 = sorted(lt5,reverse=True,key=lambda x:x['age']))

地图龙舟表示同意。
灭神狮子完事后就回到了放棵兔子马戏团,回来后,马戏团团主检查他有没有损害,所以就把它安排到了一个房间里面
(#导入需要被测试的函数from method import mySum)然后将穿着蓝色工作服的调试工师傅叫来(#导入测试模块 import unittest)然后整了一个大玻璃箱(步骤一:需要先导入测试模块unittest,然后自定义类继承unittest中的TestCase类,)箱子上有“测试箱”三个字。箱子里面最上方有个提醒器

( 对于setUp()函数而言:在执行主模块的时候由系统自动调用(时机:在被测试的函数执行之前被调用执行
def setUp(self):print('对函数开始单元测试...')))

你可以随意设置提醒的内容。在箱子里面最下方也有个结束提醒器

(  对于tearDown()函数而言:在执行主模块的时候由系统自动调用(时机:在被测试的函数执行之后被调用执行)(    def tearDown(self):print('单元测试结束了...')))

将要被测试的小狮子头上贴一个”test_”标志,放入玻璃箱中,会有个听诊器听小狮子肚子,看是不是和正常的声音一样。警报器上有小狮子提供的肚子声音记录和正常的声音

(
通过self调用assertEqual(,,)参数1:需要被测试的函数        【注意】此函数调用必须有小括号以及实参参数2:断言的结果参数3:如果断言失败了,错误提示信息)

如果不一样,听诊器会自动发出警报,警报的内容也可以自己设置。最后,在确定本房间名(当前模块名)是和本房间运行的机器名一致时,开始测试。结果狮子没问题!

if __name__ == '__main__':#需要通过测试模块unittest调用其main()unittest.main())if __name__ == '__main__':的运行原理每个python模块(python文件,也就是此处的 test.py 和 import_test.py)都包含内置的变量 __name__,当该模块被直接执行的时候,__name__ 等于文件名(包含后缀 .py );如果该模块 import 到其他模块中,则该模块的 __name__ 等于模块名称(不包含后缀.py)。而“__main__” 始终指当前执行模块的名称(包含后缀.py)。进而当模块被直接执行时,__name__ == 'main' 结果为真。

让python飞:形象理解python map、reduce、filter、stored、单元测试相关推荐

  1. python进阶:闭包、map/reduce/filter函数、lambda函数、装饰器

    函数式编程 一.闭包 python一切皆对象 一切皆对象意味着,所有类型均可被赋值,传参~:函数可以当做参数传递,也可以被当做返回值返回:在其他一些语言中函数仅是一段代码块. 闭包的定义与用法 如何验 ...

  2. python内置函数map reduce filter详解,面试必备知识

    面试时候经常会考到 map reduce filter 这三个内置函数的使用 map() 函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调 ...

  3. python数据采集仪_数据采集卡支持python么深入理解Python生成器(Generator)

    我们可以通过列表生成式简单直接地创建一个列表,但是受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,而且如果我们仅仅需要访问前面几个元素,那后面绝大多 ...

  4. py函数式编程(高阶函数map/reduce/filter/sorted、闭包函数/返回函数、匿名函数lamber、@装饰器decorator、偏函数functool.partial())

    #py函数式编程.py #高阶函数map/reduce/filter/sorted.闭包函数/返回函数.匿名函数lamber.@装饰器decorator.偏函数functool.partial()# ...

  5. Swift-高阶函数如map,reduce,filter的一些总结

    Swift 这个语言,速度快,更加安全,代码少,易于阅读维护. 所以一些高阶函数在项目实际使用中也是蛮方便的总结如下: 高阶函数的定义:一个函数如果可以以某个函数作为参数,或者返回值,那么这个函数就称 ...

  6. 王亟亟的Python学习之路(八)-函数式编程,map(),reduce(),filter()

    转载请注明出处:王亟亟的大牛之路 首先在这里祝愿大家,新年快乐,工作顺利,BUG少少!!! 本来说是在春节假期内继续维持着写文章的进度,但是还是偷懒了几天(打了4天SC2哈哈哈) 今天上的是关于Pyt ...

  7. Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊...

    函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计 ...

  8. python高阶函数、map reduce 自己如何去定义_小猿圈python之高阶函数lambda、map和reduce用法...

    python有很多内置函数,内置函数封装了很多功能,让我们用起来很方便,小猿圈针对高阶函数有详细的讲解视频,朋友们可以去看看,小编学后总结了一下,下面说一下lambda.map和reduce高阶函数的 ...

  9. Python函数式编程,map/reduce,filter和sorted

    什么是函数式编程? 与面向对象编程(Object-oriented programming)和过程式编程(Procedural programming)并列的编程范式. 最主要的特征是,函数是第一等公 ...

  10. python装饰器-理解Python装饰器(Decorator)

    理解Python装饰器(Decorator) Python装饰器看起来类似Java中的注解,然鹅和注解并不相同,不过同样能够实现面向切面编程. 想要理解Python中的装饰器,不得不先理解闭包(clo ...

最新文章

  1. C专家编程--读书笔记六 运行时数据结构
  2. java mqtt丢包_MQTT 3.1协议非严肃反思录
  3. 梦醒了,一切都结束了
  4. 搜索场 day1 A 求和
  5. php在线考试系统详细步骤
  6. 操作系统——四种进程调度算法模拟实现(C语言)
  7. 英语句式参考纯享版 - 主语从句 - 表语从句
  8. python合并单元格的快捷键是什么_【答疑】wps word表格如何合并单元格,快捷键是什么? - 羽兔网问答...
  9. 2021年中职组“网络安全”赛项内蒙古自治区竞赛任务书
  10. 好工具推荐-侧边翻译
  11. Unity3d Ugui 17 Content Size Fitter
  12. 力扣 python刷题
  13. sse服务器推送性能,SSE 服务端向客户端推送
  14. 蓝牙各种版本的区别(推荐)
  15. MySql数据库中,表字段新增,修改,删除
  16. ENSP彻底卸载干净仅需几步
  17. 7.7.3.6 IfcStructuralAnalysisModel
  18. 如何准备毕业论文写作——计算机毕业设计
  19. 完整配置SSM及实践-欧克
  20. 关于php自动转义问题,配置里magic_quotes_gpc的历史遗留问题

热门文章

  1. 上坤地产上市两次破发:营收增速逐年下降,董事长朱静持股50%
  2. js最简单数组去重_js数组去重最常用的5种方法
  3. os.listdir读取的文件列表乱序
  4. mysql 取消外键关联约束
  5. windows脚本Dos- cmd ,batch 命令
  6. Angular8.+ 项目引入ngzorro组件nz-month-picker的清空问题
  7. 形容谣言的四字词语_形容谣言的四字成语
  8. 文件清理工具——《超级处理器》应用
  9. 良心安利教师节海报设计模板素材网站
  10. iphone11右上角信号显示_iPhone11一直显示正在搜索信号怎么办?iPhone11无信号的解决方法...