我有兩個字典,輸出factorint
從sympy.ntheory
。我需要將它們合併,以便常用鍵得到它們的值總和,即MergedDict[key] = Dict1[key] + Dict2[key]
,而唯一鍵保持不變。在Python合併兩個字典,以便他們的鍵被添加/減去
此外,我需要得到一個merged
詞典與常見的鍵不同,即MergedDict[key] = Dict1[key] - Dict2[key]
。這裏的Dict2
鍵將永遠是Dict1
鍵的子集,所以沒有負數的問題。我試過關注this question。但我無法使其工作。到目前爲止,我的方法是如下:
from sympy.ntheory import factorint
from collections import defaultdict
d=factorint(12)
dd = defaultdict(lambda: defaultdict(int))
for key, values_dict in d.items():
for date, integer in values_dict.items():
dd[key] += integer
for n in range(2,6):
u = factorint(n)
for key, values_dict in u.items():
for date, integer in values_dict.items():
dd[key] += integer
它給人的錯誤AttributeError: 'int' object has no attribute 'items'
。以上代碼僅用於總結部分。然而,在差分部分上做任何事情時,假設可以改變總結以在常見密鑰的情況下用於差分。
d是一個'dict'對象輸出由'factorint',不知道你的「爲什麼你期待的字典是什麼意思?」。如果方法不對,請告訴。 – Frash
yes factorint是一個字典,但存儲在字典中的值不是字典。你的代碼中的'values_dict'是一個int而不是字典 –