【发布时间】:2021-09-02 14:53:52
【问题描述】:
我有一个看起来像这样的字典:
{0: 2, 1: 4, 2: 2, 3: 2, 4: 5}
即键和值都是整数。
我需要这样排序这个字典:
- 按值优先,升序;
- 按键,如果值相同,则降序。
我只知道 python 的 sorted() 函数支持一个名为“key”的参数,但它似乎只允许同时拥有 key 或 value。
我可以做些什么来实现?
仅供参考,结果应该是这样的:
{2: 2, 0: 2, 3: 2, 1: 4, 4: 5}
【问题讨论】:
-
并非所有字典都可以排序。
-
字典无法真正排序,但从 3.6 开始,它们保留了插入顺序:stackoverflow.com/a/613218/13892264
-
为什么需要这样看?字典显示为最适合其结构。
-
@PeterWood:因为?
-
@ScottHunter 如果他们需要以特定顺序遍历字典,那么他们可以先对键进行排序。出于调试目的以外的任何目的显示字典结构是一个奇怪的请求。
标签: python sorting dictionary