我知道這裏有幾個類似的問題,但是我的問題對我來說很不一樣,也很困難。 我有兩個字典:比較Python字典和嵌套字典
d1 = {'a': {'b': {'cs': 10}, 'd': {'cs': 20}}}
d2 = {'a': {'b': {'cs': 30}, 'd': {'cs': 20}}, 'newa': {'q': {'cs': 50}}}
即d1
具有關鍵'a'
,並d2
具有鍵'a'
和(換句話說d1
是我的老字典和d2
是我的新字典)。
我想遍歷這些字典,如果鍵是相同的檢查其值(嵌套字典),例如,當我找到鑰匙'a'
在d2
,我會檢查是否有'b'
,如果是檢查值'cs'
(從10
更改爲30
),如果這個值改變,我想打印它。
另一種情況是,我想從d2
獲取密鑰作爲新添加的密鑰。
因此,通過這兩個類型的字典迭代後,這是預期的輸出:
"d2" has new key "newa"
Value of "cs" is changed from 10 to 30 of key "b" which is of key "a"
我已經把下面的代碼,我與未盡管工作很多圈很努力,但不是不錯的選擇,因此我正在尋找是否可以通過遞歸代碼獲得預期的輸出。
for k, v in d1.iteritems():
for k1, v1 in d2.iteritems():
if k is k1:
print k
for k2 in v:
for k3 in v1:
if k2 is k3:
print k2, "sub key matched"
else:
print "sorry no match found"