流畅的python学习笔记
You can’t learning Kung Fu without long study and hard practice.
─────Panda Zhangs
这仅仅是我个人的学习笔记,内容风格可能不适合他人阅读,如果想要学习python trick
或者相关的basic method 还是看看其他的书或者视频
issue 1:
让我们开始看看排序吧,派大星。
常用来对列表对象做排序处理的函数是
list.sort()和sorted(),这两个方法效果看起来差不多,但是后者应用范围更广。
python中实现的排序算法是一个稳定的算法,也就是排序时如果两个对象的值相同,这两者相对先后顺序不会产生变换。
sort系列有一些有用的参数 reversed
启用为true的时候,序列会以降序排列,原本默认情况是按照增序排列的。
另一个就是key,key返回的对象,sort会用来作为排序比较的值,这里面常用的函数是匿名函数lambda
issue 2:
既然一个序列已经有序了,那么对一个有序序列查找特定元素的算法
bisect
和insort
bisect
可以用来搜索有序序列里面保持序列顺序的插入位置,这里使用的是二分查找
,使用insert(index,needle)
可以在index插入新增值needle保证原序列顺序不变。这个函数默认是插到等值对象的后边,也就是右边,要是想插入到前面可以使用bisect_left
。
bisect.insort
可以将上边两步操作一步做完。这个函数也有个变体叫insort_left
issue 3:
既然有了排序那么直接求最大值,最小值的常用函数当然也是相似的
max
,min
,这两个函数应用范围很广,只要你的key函数定义得够好,这个函数也能够应用得够好。