python如何确定一个字典是否包含来自另一个字典的数据

2024-05-19 07:22:03 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,如何查找一个字典是否包含来自另一个字典的数据。你知道吗

我的数据被分配给这样一个变量

childDict = {
  "assignee" : {
     "first":"myFirstName",
     "last":"myLastName"
  },
  "status" : "alive"
}

我有另一本名为masterDict的字典,它具有类似的层次结构,但包含更多的数据。你知道吗

masterDict = {
  "description": "sample description",
  "assignee" : {
     "first" : "myFirstName",
     "last" : "myLastName"
  },
  "status" : "dead",
  "identity": 1234  
}  

现在我需要通读childDict,看看masterDict中是否有这些值。你知道吗

数据是嵌套的,它可以有更多的深度。 在上面的例子中,由于状态不匹配,它应该返回false,否则它应该返回true。我如何比较它们。我对Python还不熟悉。谢谢你的帮助。你知道吗


Tags: 数据sample字典层次结构statusdescriptionfirstlast
1条回答
网友
1楼 · 发布于 2024-05-19 07:22:03

请注意,词典中有一些错误(缺少逗号)。你知道吗

childDict1 = {
    "assignee": {
        "first":"myFirstName",
        "last":"myLastName"
    },
    "status" : "alive"
}

childDict2 = {
    "assignee": {
        "first":"myFirstName",
        "last":"myLastName"
    },
    "status" : "dead"
}

masterDict = {
    "description": "sample description",
    "assignee": {
        "first":"myFirstName",
        "last":"myLastName"
    },
    "status": "dead",
    "identity": 1234  
}

def contains_subdict(master, child):
    if isinstance(master, dict) and isinstance(child, dict):
        for key in child.keys():
            if key in master:
                if not contains_subdict(master[key], child[key]):
                    return False
        return True
    else:
        if child == master:
            return True
        return False

print contains_subdict(masterDict, childDict1)
print contains_subdict(masterDict, childDict2)

运行代码会产生以下输出:

False
True

相关问题 更多 >

    热门问题