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

如何按字母顺序(字典序)对嵌套字典的键进行排序?

如何按字母顺序对嵌套字典的键进行排序?

你已经搞定了外层字典的键排序,但内层嵌套的字典还没按字母序排列对吧?别担心,只需要在处理外层排序的同时,对每个子字典也执行排序操作,就能实现内外层键都按字典序排列的效果。

修改后的完整代码

from collections import *
with open('Input_1.txt', 'r') as file:
    dict_2 = {}
    for line in file:
        surname, item, amount = line.split()
        amount = int(amount)
        if surname not in dict_2:
            dict_2[surname] = {}
        if item not in dict_2[surname]:
            dict_2[surname][item] = amount
        else:
            dict_2[surname][item] += amount

# 同时完成外层和内层字典的键排序
sorted_dict = {
    outer_key: {inner_key: inner_val for inner_key, inner_val in sorted(inner_dict.items())}
    for outer_key, inner_dict in sorted(dict_2.items())
}

print(sorted_dict)

代码逻辑说明

  • 外层通过 sorted(dict_2.items()):按姓氏的字母顺序遍历外层字典的键值对,生成新的外层有序字典。
  • 内层通过 sorted(inner_dict.items()):对每个用户对应的物品字典,按物品名称的字母顺序排序键值对,再生成新的内层有序字典。

旧版本Python兼容提示

如果你使用的是Python 3.6及更早版本(普通字典不保留插入顺序),可以改用OrderedDict来确保排序后的顺序被稳定保留:

from collections import OrderedDict

sorted_dict = OrderedDict(
    (outer_key, OrderedDict(sorted(inner_dict.items())))
    for outer_key, inner_dict in sorted(dict_2.items())
)

运行这段代码后,你就能得到和期望完全一致的、内外层键都按字母序排列的字典输出了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:57:49