流畅的python学习笔记


You can’t learning Kung Fu without long study and hard practice.

  1. ─────Panda Zhangs

这仅仅是我个人的学习笔记,内容风格可能不适合他人阅读,如果想要学习python trick
或者相关的basic method 还是看看其他的书或者视频

流畅的python学习笔记 - 图1

issue 1:

让我们开始看看排序吧,派大星。

常用来对列表对象做排序处理的函数是

list.sort()和sorted(),这两个方法效果看起来差不多,但是后者应用范围更广。

python中实现的排序算法是一个稳定的算法,也就是排序时如果两个对象的值相同,这两者相对先后顺序不会产生变换。

sort系列有一些有用的参数 reversed启用为true的时候,序列会以降序排列,原本默认情况是按照增序排列的。

另一个就是key,key返回的对象,sort会用来作为排序比较的值,这里面常用的函数是匿名函数lambda

issue 2:

既然一个序列已经有序了,那么对一个有序序列查找特定元素的算法
bisectinsort

bisect可以用来搜索有序序列里面保持序列顺序的插入位置,这里使用的是二分查找
,使用insert(index,needle)可以在index插入新增值needle保证原序列顺序不变。这个函数默认是插到等值对象的后边,也就是右边,要是想插入到前面可以使用bisect_left

bisect.insort可以将上边两步操作一步做完。这个函数也有个变体叫insort_left

issue 3:

既然有了排序那么直接求最大值,最小值的常用函数当然也是相似的
max,min,这两个函数应用范围很广,只要你的key函数定义得够好,这个函数也能够应用得够好。