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

如何将计算得到的变量x、y追加到已有字典的对应值列表中

解决字典中追加计算值到对应赛事列表的问题

我需要把计算得到的两个变量x、y追加到已创建字典的对应赛事列表中,每个赛事单独计算x和y,但现在计算结果被加到了字典末尾,没进到对应赛事的列表里。

原创建字典的代码

my_dict= {} 

for row in mydb.fetchall():
    if row[0] not in my_dict:
        # 创建字典
        my_dict[row[0]] = list(row[1:])
        my_dict[row[0]][4] = [my_dict[row[0]][4]] # 把整数转成整数列表
    else:
        my_dict[row[0]][4].append(row[5])

原输出结果

{'Dallas-Minnesota': ['NHL', 8.1, 9, '15:00', [0, 1, 1, 5]],
'Vegas-New York': ['NHL', 8.1, 9, '18:00', [1, 2, 3, 4]],
}

尝试添加x、y的代码

for key, value in my_dict.items():
    # 两个变量
    x= sum(value[4]) / len(value[4])
    y = (x *100) / 2

    # 添加值到字典
    my_dict[row[0]].append([x], [y])

错误输出结果

{'Dallas-Minnesota': ['NHL', 8.1, 9, '15:00', [0, 1, 1, 5]],
'Vegas-New York': ['NHL', 8.1, 9, '18:00', [1, 2, 3, 4]],
[1.75, 87.5], [2.5, 125.0]
}

期望输出结果

{'Dallas-Minnesota': ['NHL', 8.1, 9, '15:00', [0, 1, 1, 5], [1.75], [87.5]],
'Vegas-New York': ['NHL', 8.1, 9, '18:00', [1, 2, 3, 4], [2.5], [125.0]],
}

修正方案

问题出在遍历字典时误用了之前数据库循环的row[0]变量,现在需要操作当前遍历到的赛事对应的列表。直接用循环里的value(列表是可变对象,修改value会同步到字典)或者my_dict[key]来追加值即可:

for key, value in my_dict.items():
    x = sum(value[4]) / len(value[4])
    y = (x * 100) / 2
    # 分别追加[x]和[y]到当前赛事的列表末尾
    value.append([x])
    value.append([y])

或者用my_dict[key]操作的写法:

for key, value in my_dict.items():
    x = sum(value[4]) / len(value[4])
    y = (x * 100) / 2
    my_dict[key].append([x])
    my_dict[key].append([y])

这样就能得到你期望的结构,把计算后的x、y以列表形式追加到对应赛事的信息列表中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:20:41