首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python语言中有没有类似于C++ STL map的结构?

Python语言中有没有类似于C++ STL map的结构?
EN

Stack Overflow用户
提问于 2010-09-07 07:12:17
回答 6查看 22.6K关注 0票数 28

Python中是否有一种结构可以支持与C++ STL map类似的操作,并且操作的复杂度与C++ STL map相对应

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-09-07 07:16:34

dict通常是足够接近的--你希望它不做什么?

如果答案是“提供顺序”,那么for k in sorted(d.keys())到底有什么问题呢?也许是使用了太多的内存?如果你做了大量的有序遍历,并插入了插入,那么好吧,重点是,你真的需要一棵树。

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

票数 17
EN

Stack Overflow用户

发布于 2016-08-29 04:03:07

Python是一个类似于C++ SortedDict的映射。你可以在herehere上阅读到相关内容。

SortedDict是键-值对的容器,在该容器中,根据键之间的顺序关系对键进行排序。与Python内置的dict数据类型一样,SortedDict支持按键快速插入、删除和查找。

票数 17
EN

Stack Overflow用户

发布于 2010-09-07 07:15:34

我相信标准的python类型dict()在大多数情况下都能做到这一点。与C++的std::map的不同之处在于,dict是作为散列映射实现的,而C++的映射是基于树的。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3654770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档