我们说我有这两本词典,两者都包含相似的键:
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: 10
或defense: 8
等等。现在,如果那个player
碰到了一套盔甲套装,或者其他什么,那些特定技能,我怎么能拿掉那个buff字典,看看是什么键它与player
的{{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]