Python Cookbook 数据结构和算法

这是该书中的第一章,将大概的内容分为20个问题进行讲解。里面其实也是刚好呼应《流畅的python》的第一部分。
这是本章的框架
Python Cookbook 数据结构和算法
当然一个章节的内容不只是这么多,后面还有几个算法的实现。其中再对堆和栈进行下面的比较。
Python Cookbook 数据结构和算法

《字典》使用方法大赏
一、将键映射到多个值上
值的类型:列表:保留插入顺序;集合:取消重复的值;
defaultdict : 自动处理空选项。
二、让字典保持有序
OrderedDIct:严格按照元素的初始添加顺序进行。
!!!该类型的字典是普通字典的2倍大小。
三、计算
zip()函数可以使字典的键值改变互换,但是这个迭代器只能被消费一次。
Python Cookbook 数据结构和算法
可以看到平时的计算公式只能根据键来进行排序,但是用这个函数后就可以用值了。
四、寻找相同点
字典的键支持集合操作
Python Cookbook 数据结构和算法
五、提取子集
采用字典推导公式的方法最快
Python Cookbook 数据结构和算法

六、将多个映射合并为单个映射
ChainMap(详情参考我的流畅的python读书笔记)

骚操作:
一、从序列中删除重复项且保持顺序不变
删除重复项,我们可能会使用集合,但是集合并不能保持顺序不变。
所以我采取使用dedupe函数。
二、对切片命名
使用slice函数操作
三、找出序列中出现次数最多的
Counter字典,并配合使用update()方法
四、利用公共键值对对字典排序||可以用于原生不支持对象的排序
其实就是对key值的重定义,采用operator中的itemgetter函数。
五、根据字段对记录分组
itertools.groupby()首先应该是对其排序,然后再进行分组操作
六、筛选元素
fliter()函数