You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何对字典中值相同的键进行排序?

解决方案

要实现这个需求,你可以按照以下步骤操作(适用于Python 3.7及以上版本,该版本起字典会保留插入顺序):

  1. 按值分组:把字典中值相同的键归类到一起
  2. 组内排序:对每个组里的键,先转换为整数再进行升序排序,之后转回字符串
  3. 重组字典:按值的大小顺序,将排序后的键值对重新存入字典

代码实现

from collections import defaultdict

my_dict = {'100': 1,
           '90': 9,
           '180': 9,
           '65': 11,
           '56': 11,
           '74': 11}

# 按值分组
value_groups = defaultdict(list)
for key, val in my_dict.items():
    value_groups[val].append(key)

# 对每个组内的键按整数大小排序
sorted_groups = {}
for val, keys in value_groups.items():
    sorted_keys = sorted(keys, key=lambda x: int(x))
    sorted_groups[val] = sorted_keys

# 重组有序字典
result = {}
for val in sorted(sorted_groups.keys()):
    for key in sorted_groups[val]:
        result[key] = val

print(result)

输出结果

{'100': 1, '180': 9, '90': 9, '56': 11, '65': 11, '74': 11}

说明

  • 用defaultdict分组可以快速把相同值的键聚集到一起
  • sorted函数的key=lambda x: int(x)参数,确保按键的数值大小排序,而非字符串字典序,保证排序逻辑符合数值认知
  • 最后按值的升序遍历分组,确保整体键值对顺序和预期匹配

内容的提问来源于stack exchange,提问作者LuisFigas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:10:35