python - 如何遍历列表并将它们添加到嵌套字典中的值中?
问题描述
- GXX = game_id
player_statistics =
{'P001': {'G02': ['1'], 'G05': ['0'], 'G07': ['0'], 'G08': ['0'], 'G10': ['1']},
'P067': {'G02': ['1'], 'G05': ['1'], 'G07': ['0'], 'G08': ['0'], 'G10': ['0']},
'P218': {'G02': ['0'], 'G05': ['1'], 'G07': ['1'], 'G08': ['0'], 'G10': ['0']},
'P101': {'G02': ['0'], 'G05': ['0'], 'G07': ['1'], 'G08': ['1'], 'G10': ['0']},
'P456': {'G02': ['1'], 'G05': ['1'], 'G07': ['0'], 'G08': ['1'], 'G10': ['0']}}
game_info = [
['G05', 'Hopscotch', 'N', '2'],
['G07', 'Dominoes', 'S', '5'],
['G08', 'Chess', 'N', '3'],
['G10', 'Monopoly', 'N', '3'],
['G02', 'MineCraft', 'S', '5']
]
我想将 game_info 中每个列表中的 index[2] 和 index[3] 添加到 player_statistics 中的值(列表)中的值。
我的代码:
for values in player_statistics.values():
for k, v in values.items():
for data in game_info:
if k == data[0]:
player_statistics[k].insert(1, data[2])
player_statistics[k].insert(2, data[3])
我的代码输出:
Traceback (most recent call last):
File "D:\projects\FinalCodingChallenge\test.py", line 25, in <module>
player_statistics[k].insert(1, data[2])
KeyError: 'G02'
预期输出:
player_statistics =
{'P001': {'G02': ['1', 'S', '5'], 'G05': ['0', 'N', '2'], 'G07': ['0', 'S', '5'], 'G08': ['0', 'N', '3'], 'G10': ['1', 'N', '3']},
'P067': {'G02': ['1', 'S', '5'], 'G05': ['1', 'N', '2'], 'G07': ['0', 'S', '5'], 'G08': ['0', 'N', '3'], 'G10': ['0', 'N', '3']},
'P218': {'G02': ['0', 'S', '5'], 'G05': ['1', 'N', '2'], 'G07': ['1', 'S', '5'], 'G08': ['0', 'N', '3'], 'G10': ['0', 'N', '3']},
'P101': {'G02': ['0', 'S', '5'], 'G05': ['0', 'N', '2'], 'G07': ['1', 'S', '5'], 'G08': ['1', 'N', '3'], 'G10': ['0', 'N', '3']},
'P456': {'G02': ['1', 'S', '5'], 'G05': ['1', 'N', '2'], 'G07': ['0', 'S', '5'], 'G08': ['1', 'N', '3'], 'G10': ['0', 'N', '3']}}
如果您能解释我在代码上做错了什么,并向我展示适当的方法,我将不胜感激。提前致谢。
解决方案
看起来你错过了keys
第一个 for 循环。如果添加它应该可以工作:
for keys, values in player_statistics.items():
for k, v in values.items():
for data in game_info:
if k == data[0]:
player_statistics[keys][k].insert(1, data[2])
player_statistics[keys][k].insert(2, data[3])
print(player_statistics)
推荐阅读
- amazon-web-services - 构建推送警报的 Alexa 技能
- razor-pages - Razor Pages asp-page-handler OnPostcustom 未触发
- uwsgi - uWSGI 试图加载不存在的 ini
- xml - 是没有打开问题的封闭标签吗?
- javascript - 具有多个日期选择的 Jquery DatePicker
- php - 合并来自单个数据集的关联数据
- c# - 如果我使用 ServiceProvider 接口来解析我在 .NET Core 中的属性以进行依赖注入,会不会很糟糕
- eclipse - 无法使用 CodeMix 在 Eclipse 中创建 React 项目
- insert - Apache jena 更新远程端点
- python - Pyramid / mongo:为 EmbeddedDocumentListField 构建嵌套的 tal:repeat