Python 扩展数据结构
目录

Python包含一些内建的数据类型,如list, tuple, dict 和 set。 这些类型对于很多程序来说都足够使用了。 但是有些程序有更多数据结构的需求,如队列类型。 那么Python的以下一些模块就提供一些扩展数据结构的实现。

1. collections module

  • Counter 可以用于统计容器中有多少相等的元素。可以用做词频统计。

  • defaultdict 可以看做有默认值的dict。

  • deque 是一个双端队列,继承于list,并且是线程安全的。

  • namedtuple继承于tuple,可以用来构建用字符串索引的tuple。

  • OrderDict 继承于dict,可以按插入顺序保存键值。

2. array module

  • array 和list有些相似,但是array只能保存相同类型的元素,但比list更有效率。

3. heapq module

  • heapq 使用list类型实现了小端堆排序(min-heap sort),因此可以作为优先级队列使用。

4. bisect module

  • bisect 能维护一个有序的list,但不需要每插入一个元素就调整顺序。 这比对list频繁排序或者等一个长的list构建完成才开始排序这两种情况更有效率。

5. queue module

  • Queue 提供线程安全的FIFO队列。 常用于multiprocessing模块进程间通信。

6. struct module

  • struct 模块可以在字节字符串和Python本地类型之间转换。 这可以用于序列化对象,把对象从其它程序、二进制文件或者数据流中读出。

7. weakref module

  • weakref 可以在高内联的数据结构(如图或树)上提供特殊的引用标记方式, 从而减轻GC的负担,提高效率。

8. copy module

  • copy 提供数据结构的浅拷贝(shallow copy)和深拷贝(deep copy)机制。

9. pprint module

  • pprint 可以漂亮地打印出数据结构,常用于调试。

发表评论