在反向python中打印字典

时间:2016-07-18 14:38:49

标签: python dictionary

所以我有一个数字和字符串的字典,如下:

d = {"Hi": None, 2110: 1110, 1110: None}

我想从右到左打印。像这样:

{1110: None, 2110: 1110, "Hi": None}

我该怎么做呢?如果可能的话,我想避免排序,因为dict已经按顺序排列,只是顺序相反,而且在我看来,只需要更少的时间来反向打印它而不是排序。如果我错了,请纠正我,然后排序就好了。

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码实现此目的:

d = {"Hi": None, 2110: 1110, 1110: None}
print str(d)
print '{' + ','.join(str(d)[1:-1].split(',')[::-1]) + '}'

但实际上字典根本没有任何订单,我想你可能想考虑使用有序字典。

答案 1 :(得分:0)

您必须使用OrderedDict模块中的collections,并且您启动字典必须是已使用OrderedDict订购的元组列表,因此您可以保留初始字典的顺序。这是必需的,因为OrderedDict会记住插入的键的顺序。

from collections import OrderedDict

d = OrderedDict([("Hi", None), (2110, 1110), (1110, None)])

result = OrderedDict(list(d.items())[::-1])
print(result)

<强>输出:

OrderedDict([(1110, None), (2110, 1110), ('Hi', None)]) # remains this order always