如何迭代具有嵌套字典的字典以将每个嵌套字典与输入字典进行比较?

问题描述 投票:0回答:1

示例:

input_dict = {1:23, 2:34, 3:45, 4:56}
nested_dict = {'one':{1:23}, 'two':{1:23, 2:34}. 'three':{1:23, 2:34, 5:67}}

最终目标是将input_dict与nested_dict中的每个嵌套字典进行比较,并创建nested_dict的键列表,其中任何input_dict键和值与所有nested_dict键和值完全匹配。它应该忽略 input_dict 中的任何额外内容。

在上面的示例中,输出将是:

['one, 'two']

我找到了一种比较两个词典的方法:

all(key in input_dict and nested_dict[key] == input_dict[key] for key in nested_dict)
python nested
1个回答
0
投票

你很接近。 检查所有嵌套字典键和值是否在 input_dict 中匹配:

input_dict = {1:23, 2:34, 3:45, 4:56}
nested_dict = {'one':{1:23}, 'two':{1:23, 2:34}, 'three':{1:23, 2:34, 5:67}}

keys = []
for key, nested in nested_dict.items():
    try:
        if all(nested[k] == input_dict[k] for k in nested):
            keys.append(key)
    except KeyError:  # ignore error if k not in input_dict
        pass

print(keys)

输出:

['one', 'two']
© www.soinside.com 2019 - 2024. All rights reserved.