我想反转字典并以特定格式显示它。这是示例输入:
{'john':34.480, 'eva':88.5, 'alex':90.55, 'tim': 65.900}
输出应该是:
这是我使用代码的地方,但问题是它返回一个列表而不是字典。
代码:
def formatted_print(my_dict):
d = my_dict
c = sorted(d.items(), cmp=lambda a,b: cmp(a[1], b[1]), reverse=True)
return (c)
请您参考如下方法:
如果你想按这样的顺序打印你的项目你不需要另一个字典,你可以循环排序的项目并打印键和值:
>>> d = {'john':34.480, 'eva':88.5, 'alex':90.55, 'tim': 65.900}
>>> for k, v in sorted(d.items(), key = itemgetter(1), reverse=True):
... print k, '\t', v
...
alex 90.55
eva 88.5
tim 65.9
john 34.48
>>>
但是如果您想按降序保存项目,因为字典不是像列表这样的有序数据结构,您可以使用 collections.OrderedDict 来创建有序字典:
>>> from collections import OrderedDict
>>> from operator import itemgetter
>>>
>>> D = OrderedDict(sorted(d.items(), key = itemgetter(1), reverse=True))
>>>
>>> D
OrderedDict([('alex', 90.55), ('eva', 88.5), ('tim', 65.9), ('john', 34.48)])
