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

如何修改Python代码从嵌套字典中查找值小于2的目标Read键

问题排查

原代码存在两个核心问题:

  • 仅遍历了最外层字典,得到的v是嵌套的内层字典,无法直接和数值2做大小比较,运行会直接抛出类型错误
  • 没有统计每个Read键的符合条件次数,返回值为列表,和要求返回单个字符串'Read4'的预期不符
修正后代码
some_dict = {'Read1': {'Read3': 0, 'Read2': 1, 'Read5': 1, 'Read4': 0, 'Read6': 29},
            'Read3': {'Read1': 0, 'Read2': 0, 'Read5': 0, 'Read4': 1, 'Read6': 1},
            'Read2': {'Read1': 13, 'Read3': 1, 'Read5': 21, 'Read4': 0, 'Read6': 0},
            'Read5': {'Read1': 39, 'Read3': 0, 'Read2': 1, 'Read4': 0, 'Read6': 14},
            'Read4': {'Read1': 1, 'Read3': 1, 'Read2': 17, 'Read5': 2, 'Read6': 0},
            'Read6': {'Read1': 0, 'Read3': 43, 'Read2': 0, 'Read5': 0, 'Read4': 1}}

def find_first_read(some_dict):
    # 初始化计数器,统计每个Read键对应值小于2的次数
    count = {}
    min_threshold = 2
    # 双层遍历嵌套字典
    for inner_dict in some_dict.values():
        for k, v in inner_dict.items():
            if v < min_threshold:
                count[k] = count.get(k, 0) + 1
    # 返回命中次数最多的键
    return max(count, key=count.get)

# 测试调用
print(find_first_read(some_dict)) # 输出 Read4
逻辑说明
  • 先通过双层循环遍历所有内层的键值对,筛选出值小于2的条目,统计每个Read键的命中次数
  • 从统计结果中取出命中次数最高的键,最终返回结果为'Read4',符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:36:03