如何将字典dic1的值与dic2的键结合生成新字典?
用dic2的键和dic1的值生成新字典
示例场景
原字典:
dic1 = {'a':1, 'b':2} dic2 = {'c':3, 'd':4}
目标生成的新字典:
dic3 = {'c':1, 'd':2}
解决方案
方法1:字典推导式 + 迭代器(推荐)
利用迭代器逐个取出dic1的值,和dic2的键一一对应:
values_iter = iter(dic1.values()) dic3 = {key: next(values_iter) for key in dic2}
注:Python 3.7及以上版本中字典默认保持插入顺序,因此能保证值的匹配顺序和两个字典的键顺序一致。
方法2:zip() 配对转字典
直接将dic2的键和dic1的值按顺序配对后转成字典:
dic3 = dict(zip(dic2.keys(), dic1.values()))
同样依赖Python 3.7+的字典有序性,若版本较低需用
collections.OrderedDict确保顺序。
方法3:手动遍历赋值(适合少量键的场景)
将dic1的值转为列表后,通过索引匹配dic2的键:
dic_values = list(dic1.values()) dic3 = {} for idx, key in enumerate(dic2): dic3[key] = dic_values[idx]
内容的提问来源于stack exchange,提问作者user21431
相关产品推荐
相关产品推荐

