在python中匹配字典

时间:2015-03-28 05:05:27

标签: python dictionary

如何检查字典d1在python中的d2中是否存在?

d1 = {u'from':{u'dn':'topology/pod-1/node-101'}}
d2 = {u'faults': [{u'count': 1, u'pos': {u'y': 339, u'x': 860}, u'level': u'critical'}], u'from': {u'dn': u'topology/pod-1/node-101', u'type': u'leaf'}, u'to': {u'dn': u'topology/pod-1/node-104', u'type': u'spine'}}

3 个答案:

答案 0 :(得分:1)

如果dict1的子集执行此操作,您可以检查dict2是否

all(item in d2.items() for item in d1.items())

答案 1 :(得分:1)

基本上从OP的示例判断(因为英文文本是神秘的),我会说...:

  • d1dict,其键是Unicode,值为dict s
  • d2dict,其键是Unicode,值为listdict s

并且任务是:验证k的每个键d1是否也是d2的{​​{1}}值的关键字; dictd1[k]的“子词典”(前者的每个键也是后者的键,具有相同的值)。

当然这是一个很多的解释,所以我会在初级代码中编写代码,以便于将来可能需要调整: - )

d2[k]

你说什么,OP?一旦这符合您想要的语义,它就可以被简化,压缩和优化 - 但是让我们应用“首先使其成功”的宏观格言: - )

答案 2 :(得分:1)

您可以迭代它并检查它是否存在。

d1 = dict.items()
d2 = dict.items()

for values in d1:
    if values in d2:
        print values, " is in dict"