use*_*941 2 python sorting dictionary
我知道可以使用以下方法为其值排序dict:
>>> mydict = {'silver': 300, 'gold': 500, 'bronze': 100, 'platinum': 1000}
>>> items = mydict.items()
>>> print sorted([value for key, value in items])
[100, 300, 500, 1000]
Run Code Online (Sandbox Code Playgroud)
但是,如果我想的价值观排序里的字典,所以我仍然有钥匙?输出应如下所示:
{'platinum': 1000, 'gold': 500, 'silver': 300, 'bronze': 100}
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?
小智 6
你不能得到字典作为结果,因为那些本质上是无序的.您可以获得(键,值)对的列表,如果您使用该key参数,则相当容易.例如:
sorted(mydict, key=mydict.get)
Run Code Online (Sandbox Code Playgroud)
对于降序,要么反转结果列表,要么reverse=True作为另一个参数传递给sorted.
请注意,您可以使用其结果来构造OrderedDict.