Python如何将数值键字典的值赋值到对应名称键的目标字典中
问题解决方法
错误原因
你原有代码的问题在于直接将循环产生的0~22的数字作为new_dict的键写入,而new_dict原本的键是字符串类型的符文套装名称,因此会额外新增23个数字键,最终总键数变为46,不符合需求。
解决步骤
1. 定义索引与套装名称的映射关系
你需要先建立一套「数字索引→符文套装名称」的对应规则,用字典存储即可:
# 按照游戏实际的套装对应关系补全全部23个条目 rune_index_map = { 1: "Energy", 2: "Fatal", 3: "Blade", # ... 依次补充到23对应的套装名称 }
2. 修改转换函数
调整逻辑通过映射表匹配新旧字典的键:
def convert_to_rune_set(old_dict, new_dict, index_map): for index, count in old_dict.items(): # 从映射表获取对应套装名,再给新字典对应键赋值 set_name = index_map[index] new_dict[set_name] = count
3. 调用示例
convert_to_rune_set(rune_set_counts, rune_set_translated_counts, rune_index_map)
简化方案
如果你不需要提前初始化rune_set_translated_counts,可以直接通过字典推导式生成目标字典,代码更简洁:
rune_set_translated_counts = { rune_index_map[index]: count for index, count in rune_set_counts.items() }
内容的提问来源于stack exchange,提问作者KGE
相关产品推荐
相关产品推荐

