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

Leo*_*nid 19 c++ python

是否存在Python支持类似操作C++ STL map和操作复杂性的结构C++ STL map

Ste*_*sop 14

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

如果答案是"提供订单",那么实际上有for k in sorted(d.keys())什么问题呢?可能会使用太多内存?如果您正在进行大量有序遍历插入的插入,那么确定,点了,你真的想要一棵树.

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

  • dict没有为map :: lower_bound提供等效项,因此我无法在dict中搜索与已知键最接近的元素。 (3认同)

Ser*_*kov 12

Python SortedDict类似于C++ STL映射.你可以在这里这里阅读.

SortedDict是键值对的容器,其中根据键彼此的有序关系对键施加顺序.与Python的内置dict数据类型一样,SortedDict支持按键快速插入,删除和查找.


Kos*_*Kos 6

我相信标准的python类型dict()在大多数情况下会起作用.与C++的std :: map的不同之处在于dict被强制为哈希映射,而C++的映射是基于树的.