示例:
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)
你很接近。 检查所有嵌套字典键和值是否在 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']