Python3字典排序方法详解
作者:水悠悠予安
时间:2026-01-08
浏览:6
Python3.7+字典保持插入顺序,排序需用sorted()配合keys()、items()及key函数生成新字典;按键升序为{k:d[k]forkinsorted(d)},按值升序为dict(sorted(d.items(),key=lambdax:x[1]))。
本文目录
Python 3.7+ 字典保持插入顺序,排序需用 sorted() 配合 keys()、items() 及 key 函数生成新字典;按键升序为 {k: d[k] for k in sorted(d)},按值升序为 dict(sorted(d.items(), key=lambda x: x[1]))。

Python3 中字典本身是无序的(3.7+ 版本保持插入顺序,但“排序”仍指按键或值重新组织),要实现排序,需借助 sorted() 函数配合字典方法,生成新的有序结构(如列表或新字典)。
按字典的键排序
使用 sorted(d.keys()) 或直接 sorted(d) 获取升序键列表;再通过字典推导式重建有序字典:
- 升序:
{k: d[k] for k in sorted(d)} - 降序:
{k: d[k] for k in sorted(d, reverse=True)}
按字典的值排序
用 sorted(d.items(), key=lambda x: x[1]) 对键值对排序(x[1] 表示值);再转为字典:
- 升序(按值):
dict(sorted(d.items(), key=lambda x: x[1])) - 降序(按值):
dict(sorted(d.items(), key=lambda x: x[1], reverse=True)) - 注意:若值不可比较(如混有字符串和数字),会报
TypeError
处理复杂排序(多级、自定义规则)
当需要按值长度、绝对值、或多个条件排序时,可扩展 key 函数:
- 按值的字符串长度排序:
sorted(d.items(), key=lambda x: len(str(x[1]))) - 先按值降序,值相同时按键升序:
sorted(d.items(), key=lambda x: (-x[1], x[0])) - 对数值取绝对值后排序:
sorted(d.items(), key=lambda x: abs(x[1]))
保持排序结果为字典(Python 3.7+)
由于 Python 3.7+ 字典默认保持插入顺序,用 dict(...) 包裹排序后的 items() 即可得到“有序字典”:
sorted_dict = dict(sorted(d.items(), key=lambda x: x[1]))- 不推荐用
collections.OrderedDict(仅兼容旧版本需要)
作者最新文章
动漫共和国在线观看地址及入口
2026-11-04 12:06
立刻MV如何查看立刻MV官方操作指引文档
2026-11-02 14:05
抖音创作平台官网登录入口
2026-11-02 10:38
Xshell连接SSH失败怎么办?5步排查网络、代理与认证问题
2026-10-30 14:30
樱花动漫官方正版官网入口在哪_樱花动漫网址2027最新分享
2026-10-28 19:21
上一篇:
年轻人不户口本能结婚吗?
下一篇:
小红书网页版入口无需下载
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































