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

如何按内层dict中列表首个整数对嵌套dict进行排序?

嵌套字典排序解决方案

首先明确你的需求:对每个内层字典(比如{'CA': [15, 20], 'US': [25, 30]})的条目,按对应列表的第一个整数降序排序,让'US'排在'CA'之前。

你的当前代码是针对外层字典的条目排序,这不符合需求,正确的做法是遍历外层字典的每个键值对,对内层字典的条目进行排序:

实现代码

# 示例输入数据
data = {'EQUITY': {'CA': [15, 20], 'US': [25, 30]}, 'BOND': {'DE': [18, 22], 'FR': [22, 28]}}

# 生成排序后的嵌套字典
sorted_data = {
    outer_key: dict(sorted(inner_dict.items(), key=lambda item: item[1][0], reverse=True))
    for outer_key, inner_dict in data.items()
}

代码解释

  • inner_dict.items():取出内层字典的所有键值对(比如('CA', [15,20])、('US', [25,30]))
  • key=lambda item: item[1][0]:排序依据是内层键值对中列表的第一个元素(item[1]是列表,item[1][0]取第一个整数)
  • reverse=True:降序排列,让数值大的条目排在前面(比如US的25大于CA的15,所以US在前)

如果你的需求确实是排序外层字典的条目(比如按每个内层字典中最大的列表第一个元素排序),那可以这样写:

sorted_outer_dict = dict(sorted(data.items(), key=lambda item: max(v[0] for v in item[1].values()), reverse=True))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:36:07