【发布时间】:2014-12-03 07:26:37
【问题描述】:
我知道有几个类似的问题,但我的问题对我来说完全不同且困难。 我有两个字典:
d1 = {'a': {'b': {'cs': 10}, 'd': {'cs': 20}}}
d2 = {'a': {'b': {'cs': 30}, 'd': {'cs': 20}}, 'newa': {'q': {'cs': 50}}}
即d1 有键 'a',d2 有键 'a' 和 'newa'(换句话说,d1 是我的旧字典,d2 是我的新字典)。
我想遍历这些字典,如果键相同,则检查其值(嵌套字典),例如当我在d2 中找到键'a' 时,我会检查是否有'b',如果有,则检查'cs' 的值(从10 更改为30),如果更改此值我想打印出来。
另一种情况是,我想从d2获取密钥'newa'作为新添加的密钥。
因此,在遍历这两个字典之后,这是预期的输出:
"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"
【问题讨论】:
标签: python dictionary comparison