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

如何对嵌套字典的键进行数值排序?示例需求解析

解决嵌套字典按键排序的问题

嘿,这个需求很好实现,核心就是对嵌套字典的每一层键进行排序后重新构建字典就行~

首先,先明确你的原始字典:

original_dict = {'even': {'1': 'odd', '0': 'even'}, 'odd': {'1': 'even', '0': 'odd'}}

实现方法

因为Python 3.7及以上版本的字典会保留插入顺序,所以我们可以通过字典推导式,结合sorted()函数来完成排序:

# 对内层字典按键排序(转换为整数确保数字顺序)
sorted_dict = {
    outer_key: dict(sorted(inner_dict.items(), key=lambda x: int(x[0])))
    for outer_key, inner_dict in original_dict.items()
}

代码解释

  • sorted(inner_dict.items(), key=lambda x: int(x[0])):把内层字典的键值对转换成可迭代的元组列表,然后按照键的数值大小排序(因为你的键是字符串类型的数字,转成int排序更通用,比如遇到'10'、'2'这类也能正确排序);
  • dict(...):把排序后的元组列表重新转换成字典;
  • 外层的字典推导式则遍历原字典的所有外层键值对,将处理后的内层字典重新组合。

验证结果

运行代码后打印sorted_dict,就能得到你想要的结果:

print(sorted_dict)
# 输出: {'even': {'0': 'even', '1': 'odd'}, 'odd': {'0': 'odd', '1': 'even'}}

可选:外层键也排序

如果你的外层字典还有更多键,需要同时对外层键排序的话,可以在外层遍历的时候也加上sorted():

sorted_dict = {
    outer_key: dict(sorted(inner_dict.items(), key=lambda x: int(x[0])))
    for outer_key, inner_dict in sorted(original_dict.items())
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 16:27:56