字典中的键顺序

时间:2011-05-21 18:11:53

标签: python dictionary

我有一本字典

{'a': 'first', 'b': 'second'}

但是,我需要不同顺序的字典:

{'b': 'second', 'a': 'first'}

这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:41)

字典未订购。所以没有办法做到这一点。

如果您有python2.7 +,则可以使用collections.OrderedDict - 在这种情况下,您可以使用.items()检索项目列表,然后将其反转并从中创建一个新的OrderedDict反向清单:

>>> od = OrderedDict((('a', 'first'), ('b', 'second')))
>>> od
OrderedDict([('a', 'first'), ('b', 'second')])
>>> items = od.items()  # list(od.items()) in Python3
>>> items.reverse()
>>> OrderedDict(items)
OrderedDict([('b', 'second'), ('a', 'first')])

如果您使用的是较旧的python版本,则可以从http://code.activestate.com/recipes/576693/

获取反向端口

答案 1 :(得分:7)

字典没有订单。

您可以获取密钥,按照您的喜好对其进行排序,然后以这种方式迭代字典值。

keys = myDict.keys()
keys = sorted(keys)  # order them in some way
for k in keys:
   v = myDict[k]

答案 2 :(得分:4)

你不能; dict是不合格的。如果您需要有序词典,请使用OrderedDict