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

如何遍历Python字典值 筛选指定区间数值并保留对应键与索引

问题根因

你的代码每次匹配到符合区间的概率值时,都会直接对dt整体赋新值,之前循环存入的所有结果会被完全覆盖,最终只会保留最后一次遍历到的匹配项,也就是示例里的{350: {'6': 0.52}}。

修复方案

遍历过程中不要重写整个结果字典,而是按层级追加内容:

  • 每遍历到一个原字典的实例索引,先在结果字典中为该索引创建空的子字典
  • 匹配到符合阈值的概率时,直接将类别位置、概率值作为键值对存入对应实例的子字典中
  • 如果你需要严格按照最开始描述的0.480.55区间筛选,把判断条件里的0.45改成0.48即可,当前代码匹配的是你给出的期望输出对应的0.450.55区间

修复后的完整代码:

d = {
    348: [0, 0, 0, 0.5, 0, 0, 0.49],
    349: [0, 0, 0.3, 0.48, 0.49, 0.55, 0.9],
    350: [0, 0, 0.3, 0.45, 0.0, 0.52, 0.8]
} 

dt = {}
for instance_id, probs in d.items():
    dt[instance_id] = {}
    for idx, prob in enumerate(probs):
        if 0.45 <= prob <= 0.55:
            dt[instance_id][str(idx + 1)] = prob

print(dt)
运行结果

代码执行后输出如下,和你预期的结构完全一致(已修正你给出的期望示例里的标点笔误,比如把错写的逗号改成冒号、小数点):

{348: {'4': 0.5, '7': 0.49}, 349: {'4': 0.48, '5': 0.49, '6': 0.55}, 350: {'4': 0.45, '6': 0.52}}

内容的提问来源于stack exchange,提问作者Natália Resende

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:42:23