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

如何按嵌套字典值总和逆序排序外层字典的键?

解决办法

首先修正你的原字典写法——Python里字符串类型的键必须加引号,不然会被当成未定义的变量:

original_dict = {
    'Sarah': {'apple': 1, 'pear': 2},
    'John': {'tomato': 5, 'cucumber': 5},
    'Dany': {'carrot': 1}
}

要按内层字典值的总和给外层键排序生成新字典,核心是把sorted()的key参数设置成计算内层值总和的逻辑。按照你给出的期望结果(总和从小到大排序),代码如下:

sorted_dict = dict(sorted(original_dict.items(), key=lambda item: sum(item[1].values())))

如果你确实需要逆序(总和从大到小),只需要加个reverse=True参数:

sorted_dict_reverse = dict(sorted(original_dict.items(), key=lambda item: sum(item[1].values()), reverse=True))

简单解释

  • original_dict.items():把字典拆成一个个(外层键, 内层字典)的元组
  • lambda item: sum(item[1].values()):用匿名函数指定排序规则——取每个元组里的内层字典,把它的所有值加起来,用这个总和作为排序依据
  • dict(...):把排序后的元组列表转回字典(注意Python 3.7及以上版本的字典才会保留排序后的顺序)

运行第一个代码后,得到的sorted_dict就是你要的结果:

{'Dany': {'carrot': 1}, 'Sarah': {'apple': 1, 'pear': 2}, 'John': {'tomato': 5, 'cucumber': 5}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:54:15