使用Python比较两个字典并找出差异

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

我正在使用 Odoo,我想在不使用任何库的情况下对两个词典进行比较。此比较应返回具有差异的字典。这是我的两本词典:

list1 = {
    'Office Furniture':
    [
        {
            'name': 'Office chairs can harm your floor: protect it.',
            'qty': 3
        },
    ]
}


list2 = {
    'Office Furniture': 
    [
        {
            'name': 'Office chairs can harm your floor: protect it.', 
            'qty': 3
        }, 
        {
            'name': '160x80cm, with large legs.', 
            'qty': 1
        }
    ], 
    'Services': 
    [
        {
            'name': 'designing', 
            'qty': 1
        }
    ]
}

我想在没有任何图书馆的情况下获得这两个词典之间的差异,如下所示:

differences = {
   'Office Furniture':
   [
       {
           'name': '160x80cm, with large legs.',
           'qty': 1
       }
   ],

   'Services':
   [
       {
           'name': 'designing',
           'qty': 1
       }
   ]
}

非常感谢您的帮助!

python dictionary
2个回答
0
投票
def compare_dictionaries(dict1, dict2):
    diff_dict = {}

    for key in dict1.keys():
        if key not in dict2:
            diff_dict[key] = (dict1[key], None)
        elif dict1[key] != dict2[key]:
            diff_dict[key] = (dict1[key], dict2[key])

    for key in dict2.keys():
        if key not in dict1:
            diff_dict[key] = (None, dict2[key])

    return diff_dict

可能你需要重命名你的听写)


0
投票
  1. 创建一个新字典,用其他两个字典的部分填充该字典。 2.您可以将两本词典与新词典进行比较。
© www.soinside.com 2019 - 2024. All rights reserved.