如何遍历列表向Python嵌套字典的值列表添加元素并解决KeyError
问题分析与解决
错误点梳理
你代码触发KeyError的核心原因是字典层级访问错误:
player_statistics的一级键为玩家ID(P001、P067等),game_id(G02、G05等)是二级字典的键,你直接写player_statistics[k]相当于在一级字典中查找G02这类不存在的键,自然报错。- 额外问题:每次处理game_id都全量遍历
game_info列表匹配,遍历逻辑冗余,性能较低。
正确实现代码
建议先将game_info转换为game_id到对应属性的映射字典,减少重复遍历,再批量更新统计数据:
# 预处理game_info为映射字典,仅需遍历一次 game_attr_map = {item[0]: (item[2], item[3]) for item in game_info} # 遍历更新玩家统计数据 for game_dict in player_statistics.values(): for game_id, stat_list in game_dict.items(): # 直接取出对应属性追加到统计列表 stat_list.extend(game_attr_map[game_id])
运行上述代码后,player_statistics的结构和你期望的输出完全一致。
内容的提问来源于stack exchange,提问作者Miracle
相关产品推荐
相关产品推荐

