Python中如何映射两个关联字典的键值生成目标转换字典
Python双字典映射生成目标字典方法
需求说明
给定两个键集合完全一致的字典:
dict_a_to_b:存储a到b的映射关系dict_a_to_c:存储a到c的映射关系
需要生成新字典dict_c_to_b,规则为:以dict_a_to_c的值作为新字典的键,以两个字典同键对应的dict_a_to_b的值作为新字典的值,预期输出为{0.1:4, 0.2:9, 0.8:3}。
实现方案
最简洁高效的实现方式是使用字典推导式,直接遍历公共键完成映射组装:
# 原始字典定义 dict_a_to_b = {2:4, 6:9, 9:3} dict_a_to_c = {2: 0.1, 6:0.2, 9: 0.8} # 字典推导式生成目标字典 dict_c_to_b = {dict_a_to_c[k]: dict_a_to_b[k] for k in dict_a_to_b}
运行上述代码后,dict_c_to_b的输出和预期完全一致。
兼容场景说明
如果实际业务中两个字典的键可能存在不匹配的情况,可以先取两个字典的键交集再做遍历,避免抛出KeyError:
# 取两个字典的公共键 common_keys = dict_a_to_b.keys() & dict_a_to_c.keys() dict_c_to_b = {dict_a_to_c[k]: dict_a_to_b[k] for k in common_keys}
注意:浮点数存在精度误差问题,如果
dict_a_to_c的值是计算得出的浮点数,不建议直接作为字典键使用,容易出现精确匹配失败的问题。
内容的提问来源于stack exchange,提问作者mona
相关产品推荐
相关产品推荐

