如何将2D列表转换为记录玩家游戏胜负的嵌套字典?
实现思路
- 先提取第一行中索引1及之后的元素作为游戏ID列表
- 遍历从第二行开始的每一行数据,每行第一个元素为玩家ID
- 将每行后续的结果值和游戏ID一一对应,只要值等于字符串
'1'就记为获胜(值为1),其余情况统一记为未获胜(值为0) - 拼接成要求的嵌套字典结构即可
代码实现(Python)
full_info_results = [ ['*', 'G02', 'G05', 'G07', 'G08', 'G10'], ['P001', '1', '0', '-1', '503', '1'], ['P067', '1', '1', '0', '-1', '503'], ['P218', '0', '1', '1', '-1', '-1'], ['P101', '0', '0', '1', '1', '503'], ['P456', '1', '1', '-1', '1', '-1'] ] # 提取所有游戏ID game_ids = full_info_results[0][1:] # 字典推导式直接生成结果 expected_result = { row[0]: {game_id: 1 if val == '1' else 0 for game_id, val in zip(game_ids, row[1:])} for row in full_info_results[1:] } # 打印验证结果 print(expected_result)
运行上述代码得到的输出和你给出的预期结果完全一致。
内容的提问来源于stack exchange,提问作者Miracle
相关产品推荐
相关产品推荐

