Python比较/替换dic中的键与另一个dic的值

时间:2017-12-06 21:49:00

标签: python dictionary

我正在寻找一种方法来比较/替换字典的值与另一个字典的键,如下所示:

DicA = {'abc' : 1 , 'def' : 2 , 'ghi' : 3}

DicB = {3: 'klm' , 2 : 'nop' ,1 : 'qrs'}

结果应该是:

DicC = {'abc' : 'qrs' , 'def' : 'nop' ,'ghi' : 'klm'}

因此DicA中的值“1”被替换为“qrs”,因为它们键入DicB(1)DicA(1)中的值匹配,因此结果为 - > abc:qrs。

  1. 如何将密钥与另一个字典的值进行比较?(for loops)?

  2. 之后如何更换?

  3. 有没有办法使用已实现的map()函数? E.g。

  4. map(lambda dicA, dicB):
    

1 个答案:

答案 0 :(得分:1)

你可以用字典理解来做到这一点:

dicA= {'abc': 1, 'def': 2, 'ghi': 3}
dicB= {3: 'klm', 2: 'nop', 1: 'qrs'}

dicC = {key: dicB[val] for key, val in dicA.items()}

但是,如果dicB没有dicA中某个项目的密钥,则会失败。你可以使用接受默认值的get字典方法解决这个问题,正如MCBama所指出的那样。

dicA = {'abc': 1, 'def': 2, 'ghi': 3}
dicB = {2: 'nop', 1: 'qrs'}

dicC = {key: dicB.get(val,"") for key, val in dicA.items()}
# {'abc': 'qrs', 'def': 'nop', 'ghi': ''}