识别dict中的值并将其添加到另一个dict,同时两者都包含相似的键

时间:2016-10-02 02:22:44

标签: python dictionary

我们说我有这两本词典,两者都包含相似的键:

d_1 = {'a': 3, 'b': 4, 'c': 1}

d_2 = {'a': 5, 'b': 6, 'c': 9, 'd': 7}

现在,让我们说我想取d_1的值,并将它们添加到d_2的相应值中。如何将d_1 a密钥的值添加到d_2的相应密钥中,并为每个密钥单独说d_2['a'] += d_1['a']?我怎么能写一个可以接受两个dicts的函数,比较它们的键,并将这些值添加到另一个dict中相同的现有键值?

例如,如果我有一个名为player的类,并且它的属性为skills,其中包含多种技能及其值,例如strength: 10defense: 8等等。现在,如果那个player碰到了一套盔甲套装,或者其他什么,那些特定技能,我怎么能拿掉那个buff字典,看看是什么键它与player的{​​{1}}属性有共同之处,并添加相应的值?

1 个答案:

答案 0 :(得分:3)

对于d_2中的每个键,检查它们是否在d_1中,如果是,请将它们添加起来。

for key in d_2: if key in d_1: d_2[key] += d_1[key]

似乎你想构建一个游戏,然后你可能不想弄乱玩家的属性。加起来把结果放到一个新的dict会更好。更重要的是,你可以添加两个以上的dict,因为你可能有多个buff。

for key in player: outcome[key] = 0 for buff in buffs: if key in buff: outcome[key] += buff[key] outcome[key] += player[key]