在Python中,可以使用嵌套字典的方法来匹配两个字典的值。下面是一种可能的实现方法:
def find_matching_values(dict1, dict2):
result = []
for key1, value1 in dict1.items():
if isinstance(value1, dict):
for key2, value2 in dict2.items():
if key1 == key2 and isinstance(value2, dict):
sub_result = find_matching_values(value1, value2)
result.extend(sub_result)
else:
if key1 in dict2 and value1 == dict2[key1]:
result.append((key1, value1))
return result
这个方法的思路是首先遍历第一个字典的键值对,如果值是字典类型,则递归调用该方法继续匹配;否则,判断第一个字典的键是否存在于第二个字典中,如果存在并且对应的值相等,将键值对添加到结果列表中。
以下是一个使用示例:
dict1 = {
"key1": "value1",
"key2": {
"sub_key1": "sub_value1",
"sub_key2": "sub_value2"
},
"key3": "value3"
}
dict2 = {
"key1": "value1",
"key2": {
"sub_key1": "sub_value1",
"sub_key2": "sub_value2"
},
"key4": "value4"
}
result = find_matching_values(dict1, dict2)
print(result)
运行结果为:
[('key1', 'value1'), ('sub_key1', 'sub_value1'), ('sub_key2', 'sub_value2')]
这个结果表示第一个字典和第二个字典中,键值相等的键值对为:('key1', 'value1'), ('sub_key1', 'sub_value1'), ('sub_key2', 'sub_value2')。
如果你使用腾讯云的云产品,你可以在腾讯云官方文档中查找相关的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云