Python编程
完成条件
Python 没有在其标准库中提供用于排序的集合和字典数据类型的模块。这是 Guido van Rossum 等人有意识的决定,为了保持“一种明显的做事方式”。Python 将此任务委托给 Python 包索引上可用的第三方库。这些库使用各种技术来维护排序的列表、字典和集合类型。使用专门的数据结构来维护顺序可以避免在编辑和不断重新排序的简单方法中出现非常缓慢的行为(二次运行时间)。
支持排序容器的第三方模块:
- SortedContainers - 纯 Python 实现,速度与 C 实现一样快。实现了排序的列表、字典和集合。测试包括 100% 的代码覆盖率和数小时的压力测试。文档包括完整的 API 参考、性能比较以及贡献/开发指南。许可证:Apache2。
- rbtree - 为排序的字典和集合数据类型提供快速的 C 实现。基于红黑树实现。
- treap - 提供排序的字典数据类型。使用 treap 进行实现,并通过 Cython 提高性能。
- bintrees - 为字典和集合数据类型提供几种基于树的实现。最快的实现基于 AVL 树和红黑树。用 C 实现。扩展了传统的 API,为字典数据类型提供集合操作。
- banyan - 为字典和集合数据类型提供快速的 C 实现。
- skiplistcollections - 基于跳表的纯 Python 实现,为字典和集合数据类型提供有限的 API。
- blist - 提供基于“blist”数据类型(B 树实现)的排序列表、字典和集合数据类型。用 Python 和 C 实现。
最后修改: 2025年01月31日 星期五 01:51