相当于Python中的LinkedHashMap

时间:2009-03-17 11:46:11

标签: python

LinkedHashMap是具有可预测迭代顺序的Hashtable数据结构(Python中的dict)的Java实现。这意味着在遍历所有键的过程中,它们是通过插入来排序的。这是通过维护插入顺序的附加链表来完成的。

是否有与Python相同的内容?

5 个答案:

答案 0 :(得分:14)

如果您使用的是Python 2.7或Python> = 3.1,则可以在标准库中使用collections.OrderedDict

问题This answer

How do you retrieve items from a dictionary in the order that they’re inserted?包含有序字典的实现,如果您不使用Python 3.x并且不想让自己依赖第三方ordereddict module

答案 1 :(得分:11)

虽然您可以通过维护列表来跟踪广告订单顺序来做同样的事情,但Python 2.7Python >=3.1在集合模块中有一个OrderedDict类。

在2.7之前,您可以继承dict following this recipe

答案 2 :(得分:2)

我不确定这是否是你要求的:

>>> dic = {1: 'one', 2: 'two'}
>>> for k, v in dic.iteritems():
...     print k, v

您可以使用ordereddict模块按插入顺序订购dic。

d = ordereddict(dic, relax=True)

答案 3 :(得分:1)

我不这么认为;你必须使用一个字典和一个列表。但是你可以很容易地将它包装在一个类中,并定义keys__getitem____setitem__等,使其按照你想要的方式工作。

答案 4 :(得分:0)

除了经过验证的评论;

从Python 3.7开始,dict保留插入顺序。

This answer带有详细信息。