SortedContainers 是一个排序集合库,用纯 Python 编写,速度与 C 扩展一样快

uathttae1年前 ⋅ 2136 阅读

https://github.com/grantjenks/python-sortedcontainers

https://grantjenks.com/docs/sortedcontainers/     官网文档

https://grantjenks.com/docs/sortedcontainers/performance.html  有一个好的基准测试的性能比较用起来让人放心,sortedcontainers与其他库比较各方面性能都比较优秀

>>> from sortedcontainers import SortedList
>>> sl = SortedList(['e', 'a', 'c', 'd', 'b'])
>>> sl
SortedList(['a', 'b', 'c', 'd', 'e'])
>>> sl *= 10_000_000
>>> sl.count('c')
10000000
>>> sl[-3:]
['e', 'e', 'e']
>>> from sortedcontainers import SortedDict
>>> sd = SortedDict({'c': -3, 'a': 1, 'b': 2})
>>> sd
SortedDict({'a': 1, 'b': 2, 'c': -3})
>>> sd.popitem(index=-1)
('c', -3)
>>> from sortedcontainers import SortedSet
>>> ss = SortedSet('abracadabra')
>>> ss
SortedSet(['a', 'b', 'c', 'd', 'r'])
>>> ss.bisect_left('c')
2

特征

  • 纯Python
  • 完全记录
  • 基准比较(替代方案、运行时间、负载因子)
  • 100% 测试覆盖率
  • 压力测试时间
  • 性能很重要(通常比 C 实现更快)
  • 兼容的 API(与旧的 blist 和 bintrees 模块几乎相同)
  • 功能丰富(例如,获取已排序字典中最大的五个键:d.keys()[-5:])
  • 实用设计(例如 SortedSet 是一个带有 SortedList 索引的 Python 集)
  • 基于 Python 3.10 开发
  • 使用 CPython 3.7、3.8、3.9、3.10 和 PyPy3 进行测试
  • 在 Linux、Mac OSX 和 Windows 上测试

性能确实很nice

全部评论: 0

    相关推荐