Python中是否有一种结构可以支持与C++ STL map类似的操作,并且操作的复杂度与C++ STL map相对应
发布于 2010-09-07 07:16:34
dict通常是足够接近的--你希望它不做什么?
如果答案是“提供顺序”,那么for k in sorted(d.keys())到底有什么问题呢?也许是使用了太多的内存?如果你做了大量的有序遍历,并插入了插入,那么好吧,重点是,你真的需要一棵树。
dict实际上是一个哈希表,而不是一个b树。但是map没有被定义为b树,所以它不允许你像新的map那样分离子树,它只是具有相同的性能复杂性。真正需要担心的是,当存在大量哈希冲突时,dict会发生什么情况,但在需要严格的最坏情况下的性能保证的情况下,使用Python的情况肯定非常少见。
发布于 2016-08-29 04:03:07
Python是一个类似于C++ SortedDict的映射。你可以在here或here上阅读到相关内容。
SortedDict是键-值对的容器,在该容器中,根据键之间的顺序关系对键进行排序。与Python内置的dict数据类型一样,SortedDict支持按键快速插入、删除和查找。
发布于 2010-09-07 07:15:34
我相信标准的python类型dict()在大多数情况下都能做到这一点。与C++的std::map的不同之处在于,dict是作为散列映射实现的,而C++的映射是基于树的。
https://stackoverflow.com/questions/3654770
复制相似问题