python 学习笔记7 2018-4-14

习题讲解:

可以看到函数正常调用的是时候,结果没有问题,当时当使用默默参数的时候 第二个结果不是我们想要得到的

原因解释如下:

Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。

定义默认参数要牢记一点:默认参数必须指向不变对象!

要修改上面的例子,我们可以用None这个不变对象来实现:

高阶函数

Python内建了map()

(1)map()函数

map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。


(2)sorted排序

排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来

Python内置的sorted()函数就可以对list进行排序:

它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:

key排序结果:1,9,16,25

默认情况下,对字符串排序,是按照ASCII的大小比较的,由于'Z' < 'a',结果,大写字母Z会排在小写字母a的前面

我们给sorted传入key函数,即可实现忽略大小写的排序:

要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True:

对字典进行排序:


排序结果是对key排序,而不是value

所以我们应该传进入去的是 m.items()

或者我们采用key 方法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 教程总纲:http://www.runoob.com/python/python-tutorial.html 进阶...
    健康哥哥阅读 2,144评论 1 3
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,743评论 1 118
  • 第九章-茫茫沙海(3) 我冻了一整宿。寒气透骨,晚风习习,沙漠的夜晚,似乎没有月亮和星子,冰冷砭骨。 旭日阳刚,天...
    冰寒三尺阅读 375评论 0 7
  • 雪里梅花,看遍地萧条, 一枝独秀。 野外清溪畔, 正是悄悄吐,蕴情琼琇。 国色天香,轻颤颤, 雪肤清瘦。 似广寒仙...
    断红尘阅读 469评论 0 0
  • 这是“心灵对话写作”小组第26篇文章 回到上海的第一天。 度过了一个忙碌且疲惫的春节,但内心无比充实。原本是想着能...
    墨芷轩阅读 285评论 2 0

友情链接更多精彩内容