Is there a structure in Python similar to C++ STL map?

前端 未结 6 1163
没有蜡笔的小新
没有蜡笔的小新 2021-02-05 05:02

Is there a structure in Python which supports similar operations to C++ STL map and complexity of operations correspond to C++ STL map?

6条回答
  •  南笙
    南笙 (楼主)
    2021-02-05 05:56

    dict is usually close enough - what do you want that it doesn't do?

    If the answer is "provide order", then what's actually wrong with for k in sorted(d.keys())? Uses too much memory, maybe? If you're doing lots of ordered traversals interspersed with inserts then OK, point taken, you really do want a tree.

    dict is actually a hash table rather than a b-tree. But then map isn't defined to be a b-tree, so it doesn't let you do things like detaching sub-trees as a new map, it just has the same performance complexities. All that's really left to worry about is what happens to dict when there are large numbers of hash collisions, but it must be pretty rare to use Python in situations where you want tight worst-case performance guarantees.

提交回复
热议问题