Python中是否有类似于C STL map的结构?

新手上路,请多包涵

Python 中是否有结构支持与 C++ STL map —类似的操作,并且操作的复杂性对应于 C++ STL map

原文由 Leonid 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

dict 通常足够接近 - 你想要它不做什么?

如果答案是“提供订单”,那么 for k in sorted(d.keys()) 到底有什么问题?使用太多内存,也许?如果您正在执行大量插入插入的有序遍历,那么好吧,点,您确实想要一棵树。

dict 实际上是一个哈希表而不是b-tree。但是 map 没有 被定义 为 b-tree,所以它不允许你将子树分离为新的 map ,它只是具有相同的性能复杂性。真正剩下要担心的是 dict 当有大量的哈希冲突时会发生什么,但是在你想要严格的最坏情况性能保证的情况下使用 Python 肯定是非常罕见的。

原文由 Steve Jessop 发布,翻译遵循 CC BY-SA 2.5 许可协议

我相信标准的 python 类型 dict() 在大多数情况下都可以解决问题。与 C++ 的 std::map 的区别在于 dict 是作为哈希映射实现的,而 C++ 的映射是基于树的。

原文由 Kos 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题