2016-10-02 39 views
1

比方說,我有這兩個字典,都含有類似鍵對方:確定並從字典添加值到另一個字典,同時都包含了相似的按鍵

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

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

現在,讓我們說,我想借此d_1的值並將它們添加到相應的值d_2。我將如何將d_1a密鑰的值添加到相應的密鑰d_2而不是單獨說每個密鑰d_2['a'] += d_1['a']?我怎麼能寫一個函數,可以採取兩個字母,比較他們的鍵,並將這些值添加到另一個字典中相同的現有鍵值?例如,如果我有一個名爲player的類,並且它的屬性爲skills,其中包含多個技能及其值(例如, strength: 10defense: 8等等。現在,如果這個player會碰到一個裝甲套裝,或者其他什麼,這會磨損特定的技能,我怎麼能拿這個buff字典,看看它和playerskills屬性有什麼共同點,並添加相應的值?

+0

我想遍歷在D_1鍵和D_2更新相關的值(你的建議)是最好的辦法;你有沒有理由不喜歡這種方法? – Akavall

回答

3

對於d_2中的每個鍵,檢查它們是否在d_1中,如果是,則將它們相加。

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

看來你要建一個遊戲,那麼你可能不希望與玩家的屬性一塌糊塗。把它們加起來,並把結果放到一個新的字典中會更好。更重要的是,你可以添加兩個以上的字典,因爲你可能有不止一個buff。

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

相關問題