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

Python如何实现字典先按值排序、值相同时按键名字母序排序

Python字典按值优先、同值按键字母序排序实现

实现思路

直接使用Python内置sorted()函数即可,排序键传入(值, 键)的元组:Python对元组做比较时会按元素顺序依次判定,先按值升序排列,值相等时自动按键的字符串字典序(也就是字母顺序)升序排列,完全匹配需求。

注意:不要使用dict作为自定义变量名,它是Python内置字典类型的保留关键字,会覆盖原生类型能力。

代码示例

# 输入字典
origin_data = {"aaa" : 12, "ccc" : 13, "bbb" : 13, "ddd" : 11}

# 执行排序,返回排序后的(键, 值)元组列表
sorted_pair_list = sorted(origin_data.items(), key=lambda pair: (pair[1], pair[0]))

# Python 3.7及以上版本,字典默认保留插入顺序,可直接转为排序后的字典
sorted_dict = dict(sorted_pair_list)

结果验证

遍历打印排序后的元组列表:

for key, value in sorted_pair_list:
    print(f"{key}({value})", end="  ")

输出结果和预期完全一致:

ddd(11)  aaa(12)  bbb(13)  ccc(13)

排序过程说明

  • 第一阶段按值排序:所有键值对先比较数值大小,得到中间顺序ddd(11) aaa(12) ccc(13) bbb(13)
  • 第二阶段同值重排:值均为13的ccc和bbb比较键名字母序,bbb字典序更靠前,调整后得到最终顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:30:39