所以我有一个数字和字符串的字典,如下:
d = {"Hi": None, 2110: 1110, 1110: None}
我想从右到左打印。像这样:
{1110: None, 2110: 1110, "Hi": None}
我该怎么做呢?如果可能的话,我想避免排序,因为dict已经按顺序排列,只是顺序相反,而且在我看来,只需要更少的时间来反向打印它而不是排序。如果我错了,请纠正我,然后排序就好了。
答案 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