LinkedHashMap是一个类似于哈希表的数据结构(Python中的dict)的Java实现,它具有可预测的迭代顺序。这意味着在遍历所有键的过程中,它们是按插入顺序排序的。这是通过一个附加的链表来维护插入顺序的。
在Python中是否有与之对应的代码?
LinkedHashMap是一个类似于哈希表的数据结构(Python中的dict)的Java实现,它具有可预测的迭代顺序。这意味着在遍历所有键的过程中,它们是按插入顺序排序的。这是通过一个附加的链表来维护插入顺序的。
在Python中是否有与之对应的代码?
5条答案
按热度按时间jgovgodb1#
从Python 3.7开始,
dict
对象默认保持它们的插入顺序。如果你使用的是Python 2.7或Python 3.1,你可以使用标准库中的collections.OrderedDict。
这个问题的答案How do you retrieve items from a dictionary in the order that they’re inserted?包含了一个有序dict的实现,以防你没有使用Python 3.x,也不想给予自己一个对第三方ordereddict module的依赖。
6jjcrrmo2#
虽然您可以通过维护一个列表来跟踪插入顺序来完成同样的事情,但是Python 2.7和Python >=3.1在集合模块中有一个OrderedDict类。
在Python 2.7之前,可以子类化
dict
following this recipe。fdx2calv3#
我不确定这是否是您的要求:
您可以使用ordereddict模块按插入顺序对dic进行排序。
f3temu5u4#
除验证意见外;
从Python 3.7开始,
dict
保留了插入顺序。This answer详细显示了这一点。
yfjy0ee75#
我不这么认为;你必须使用一个dict加上一个列表,但是你可以很容易地把它 Package 在一个类中,然后定义
keys
,__getitem__
,__setitem__
等等,让它按照你想要的方式工作。