我知道这里有几个类似的问题,但是我的问题对我来说很不一样,也很困难。 我有两个字典:比较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"