我有兩本詞典中減去的元素,比方說:從字典
dict_a = {"A": 3.0, "C": 4.0, "B": 6.0}
dict_b = {"A": 3.0, "C": 5.0, "D": 1.0}
,我想計算減法dict_a - dict_b
所以輸出給我:
{"A": 0.0, "B": 6.0, "C": -1.0, "D": -1.0}
Google上搜尋了一段時間我看到使用計數器來執行這樣的操作的人,但是做一些簡單的事情,如
dict(Counter(dict_a) - Counter(dict_b))
只給了我
{"A": 0.0, "B": 6.0}
即,如果該鍵不dict_a
,它不會出現在輸出中。
到目前爲止,我已經成功了以下解決方案:
dict_b2 = dict_b.copy()
dict_c = {}
for i in dict_a.keys():
dict_c.update({i: dict_a[i] - dict_b2.pop(i,0.0)})
# Changes sign to the remaining values from dict_b2
dict_c.update({k: 0.0 - v for k, v in dict_b2.iteritems()})
,但我知道必須有這樣做的更優雅和有效的方式。
任何想法?
「C」和「D」鍵被丟棄,因爲計數器會丟棄具有負數的鍵。 –
@mgilson對不起,我忘記提及它只發生在減法操作過程中。 –
@ 200OK - 是的,我剛剛注意到,當我更多地查看文檔時。它有一個'.subtract'方法是一件好事! :-) – mgilson