English 中文(简体)
在Python中的LinkedHashMap的等效对象是什么?
原标题:
  • 时间:2009-03-17 11:46:11
  •  标签:

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

有Python中的等效物吗?

最佳回答

从Python 3.7开始,默认情况下,dict对象保持插入顺序。

如果你正在使用Python 2.7或Python>=3.1,你可以在标准库中使用collections.OrderedDict。

这个关于如何按插入顺序从字典中检索项目的问题的答案包含了一个有序dict的实现,以防您不使用Python 3.x并且不想使自己依赖第三方ordereddict模块

问题回答

虽然您可以通过维护列表来跟踪插入顺序来完成相同的操作,但 Python 2.7 和 Python >=3.1 在 collections 模块中有一个 OrderedDict 类。

在2.7之前,您可以按照此配方对dict进行子类化。

我不确定这是否是您所要求的。

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

你可以使用ordereddict模块按照插入的顺序对字典进行排序。

d = ordereddict(dic, relax=True)

除了验证过的评论;

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

这个答案展示了详细的信息。

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





相关问题
热门标签