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

如何从Python嵌套字典中返回最大值及其关联的内外层键

两层嵌套字典查找全局最大值实现方法

实现逻辑说明

针对两层结构的字典,遍历所有外层、内层键值对,实时记录当前遇到的最大值以及对应的内外层键,遍历完成后即可得到目标结果,全程仅需一次完整遍历,时间复杂度为O(n),没有额外空间开销。

代码实现

方法1:易读的双层循环实现

逻辑清晰,适合新手理解和二次修改:

my_dict = {
        0: {1: 10, 2: 20, 3: 30},
        10: {10: 100, 20: 200, 30: 300},
        20: {100: 1000, 200: 2000, 300: 3000}
        }

# 初始化最大值为负无穷,对应的内外层键为空
max_value = float('-inf')
target_outer_key = None
target_inner_key = None

for outer_key, inner_dict in my_dict.items():
    for inner_key, value in inner_dict.items():
        if value > max_value:
            max_value = value
            target_outer_key = outer_key
            target_inner_key = inner_key

# 输出结果:3000 20 300
print(max_value, target_outer_key, target_inner_key)

方法2:简洁生成器写法

利用Python内置max函数对元组的比较规则,少量代码即可完成计算,适合追求代码简洁的场景:

my_dict = {
        0: {1: 10, 2: 20, 3: 30},
        10: {10: 100, 20: 200, 30: 300},
        20: {100: 1000, 200: 2000, 300: 3000}
        }

max_value, target_outer_key, target_inner_key = max(
    (value, outer_key, inner_key) 
    for outer_key, inner_dict in my_dict.items() 
    for inner_key, value in inner_dict.items()
)

# 输出结果:3000 20 300
print(max_value, target_outer_key, target_inner_key)

注意事项

  • 上述代码默认输入为固定两层结构的字典,且所有内层值为可比较的数值类型;如果存在更深层级的嵌套、或者值类型不统一,需要额外增加类型判断和递归遍历逻辑。
  • 如果字典中存在多个值相等的全局最大值,上述代码会返回遍历过程中首次遇到的最大值对应的键;如果需要返回所有匹配结果,可在遍历过程中把所有等于当前最大值的键值对存入结果列表即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:48:25