反转字典中键值对的顺序(Python)

fin*_*ego 5 python dictionary reversing python-2.7

在Python中,如何反转字典键值对的顺序?例如,我有这本词典:

{"a":1, "b":2, "c":3}
Run Code Online (Sandbox Code Playgroud)

我想反转它,以便它返回:

{"c":3, "b":2, "a":1}
Run Code Online (Sandbox Code Playgroud)

是否有一个我没有听说过的功能可以做到这一点?一些代码行也很好.

Ana*_*mar 7

字典没有任何顺序感,因此您的键/值对不以任何格式排序.

如果要保留键的顺序,则应collections.OrderedDict从头开始使用,而不是使用普通字典,示例 -

>>> from collections import OrderedDict
>>> d = OrderedDict([('a',1),('b',2),('c',3)])
>>> d
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
Run Code Online (Sandbox Code Playgroud)

OrderedDict将保留键输入字典的顺序.在上述情况下,它将是列表中存在密钥的顺序 - [('a',1),('b',2),('c',3)]-'a' -> 'b' -> 'c'

然后,您可以使用reversed(d)示例 - 获得相反的键顺序-

>>> dreversed = OrderedDict()
>>> for k in reversed(d):
...     dreversed[k] = d[k]
...
>>> dreversed
OrderedDict([('c', 3), ('b', 2), ('a', 1)])
Run Code Online (Sandbox Code Playgroud)