Python3中如何按嵌套字典的col属性升序排序?已尝试sorted与OrderedDict
Python3嵌套字典按子元素col字段升序排序实现方案
实现逻辑
对原字典的所有键值对,以子字典的col字段值为排序依据做升序排序,不同Python版本实现方式如下:
Python 3.7+ 版本
Python3.7及以上版本中内置字典默认保留插入顺序,直接用sorted排序后转字典即可:
sorted_d = dict(sorted(d.items(), key=lambda x: x[1]["col"]))
Python 3.6及更早版本
低版本Python的内置字典是无序的,需要导入OrderedDict来保存排序后的顺序:
from collections import OrderedDict sorted_d = OrderedDict(sorted(d.items(), key=lambda x: x[1]["col"]))
结果验证
可执行以下代码打印排序后的col值确认排序效果:
for k, v in sorted_d.items(): print(f"索引{k}的col值:{v['col']}")
常见失败原因说明
之前尝试未成功大概率是两个原因:
- 低版本Python中没有用
OrderedDict承接排序结果,内置无序字典会打乱排序后的顺序 - 排序时
key参数设置错误,没有正确取到子字典的col字段作为排序依据
内容的提问来源于stack exchange,提问作者Manguicho
相关产品推荐
相关产品推荐

