【发布时间】:2017-04-17 12:55:22
【问题描述】:
我把一个字典变成了一个字典,看起来像这样:第一个外部字典的键是对象,内部字典的键是对象的参数。一个对象是引用,我需要将所有对象的所有参数的值与那个引用对象进行比较,如果有差异则打印它,如果没有差异,则什么也不做。字典看起来像这样:
{'object-1301': {'act1': 'false',
'act1x': 'true',
'act': 'false',
'actAdv': 'false',
'actAe': 'false',
'actArp': 'false',},
'object-218': {'act1': 'true',
'act1x': 'false',
'act': 'false',
'actAdv': 'false',
'actAe': 'true',
'actArt': 'false',},
...
}
我到目前为止的代码是,其中 ref 是引用对象,dict 是我在上面复制的 dict:
main_dif = {}
for key, value in dict.iteritems():
dif_k = {}
for k, v in value.iteritems():
try:
a = ref[k]
except:
a = None
if a != v:
dif_k.update({k:v})
main_dif.update({key:dif_k})
我遇到的问题是下一个:当引用对象根本没有某些参数,但其他一些对象有,这很好用,但是当引用对象有而其他对象没有时,什么都没有发生,可以没找到。
【问题讨论】:
-
也许您可以先更新一下您的问题。您在示例的第一行中缺少重音。您也可以用
ref.get(k,None)替换try/except构造。最后,语法需要注意一下。 -
@Tom de Geus 我已经编辑了我的问题。我没有错过任何一排,你为什么这么认为?
-
你想做什么以及想要的结果?
-
在你的字典中,
act1缺少一些东西 -->'act1': -
如我所说,将所有对象的参数值与参考对象进行比较。如果有差异,请打印(稍后在 excel 文件中)。第一行(标题下方)是引用对象的值,下面是所有其他对象及其值(与引用不同)。也许我可以在下午给你发一张 excel 例子的截图? @manvi77
标签: python dictionary iteration