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

Python如何根据字典的键正确实现字典排序

问题根因
  • sorted()是Python内置函数,执行后会返回一个新的排好序的列表,不会原地修改传入的原对象,你调用之后没有接收返回值,直接打印原字典,自然看不到排序效果。
  • 注意Python 3.7之前的原生字典不记录插入顺序,就算把排序结果塞回原字典也不会保留顺序,需要用专门的有序字典结构。
正确实现代码

Python 3.7及以上版本(目前绝大多数环境的通用版本)

直接将排序后的键值对列表转为新字典即可,默认按key升序排序的规则和你的需求完全匹配:

# 注意:实际代码中字符串类型的A0、A16需要加引号,否则会报变量未定义错误
a_dict = {2234: "A0", 432: "A16", 3336: "A0", 11: "A0", 3: "A16"}
sorted_dict = dict(sorted(a_dict.items()))
print(sorted_dict)

执行后输出结果:
{3: 'A16', 11: 'A0', 432: 'A16', 2234: 'A0', 3336: 'A0'}
和你预期的结果完全一致。

如果需要降序排序,只需要给sorted()加参数reverse=True即可。

Python 3.6及以下版本

低版本Python原生字典不保留插入顺序,需要用collections模块里的OrderedDict来存储排序后的结果:

from collections import OrderedDict

a_dict = {2234: "A0", 432: "A16", 3336: "A0", 11: "A0", 3: "A16"}
sorted_dict = OrderedDict(sorted(a_dict.items()))
print(sorted_dict)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:01:14