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

Python中如何更新嵌套字典?新手求助修正代码输出

修正嵌套字典更新的实现方案

你的代码核心问题是循环逻辑错误,且键值对方向不符合预期,以下是修正后的实现:

方法一:使用字典推导式(简洁写法)

players_score = {}
names = ["ram", "shyam"]

# 遍历每个回合(0和1)
for k in range(2):
    # 为当前回合生成所有玩家的得分字典
    round_scores = {name: k for name in names}
    # 将回合得分字典加入总字典
    players_score[f'round_{k}'] = round_scores

print(players_score)

方法二:普通循环构建(更易理解)

players_score = {}
names = ["ram", "shyam"]

for k in range(2):
    round_scores = {}
    # 为每个玩家设置当前回合的得分
    for name in names:
        round_scores[name] = k
    players_score[f'round_{k}'] = round_scores

print(players_score)

原代码问题分析

  1. 内层循环无效:原代码的for _ in range(0,2)循环重复赋值同一个round_k键,最终只保留最后一次赋值的单个玩家键值对,没有实现所有玩家的得分记录。
  2. 键值对方向错误:原代码中{k:name[k]}把回合索引作为键、玩家名作为值,和你预期的「玩家名为键、回合数为值」完全相反。

运行修正后的代码,就能得到你期望的输出:

{'round_0': {'ram': 0, 'shyam': 0}, 'round_1': {'ram': 1, 'shyam': 1}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:46:06