LinkedHashMap 是 Java 中类似于 Hashtable 的数据结构(Python中的dict),其遍历顺序是可预测的。这意味着在遍历所有键时,它们按照插入顺序排序。这是通过维护一个额外的链表来完成的,该链表维护了插入顺序。
Python 中是否有相当的实现呢?
LinkedHashMap 是 Java 中类似于 Hashtable 的数据结构(Python中的dict),其遍历顺序是可预测的。这意味着在遍历所有键时,它们按照插入顺序排序。这是通过维护一个额外的链表来完成的,该链表维护了插入顺序。
Python 中是否有相当的实现呢?
dict
对象按插入顺序维护其顺序。尽管您可以通过维护列表来跟踪插入顺序,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
d = ordereddict(dic, relax=True)
dict.iteritems
不会根据插入顺序提供排序... - sykora我认为不行,你需要使用字典和列表。但是你可以很容易地将其封装在一个类中,并定义keys
、__getitem__
、__setitem__
等来使其按照你想要的方式工作。