Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找集合减法或字典列表之间的差异_Python_Python 3.x_Python 2.7_Dictionary - Fatal编程技术网

Python 查找集合减法或字典列表之间的差异

Python 查找集合减法或字典列表之间的差异,python,python-3.x,python-2.7,dictionary,Python,Python 3.x,Python 2.7,Dictionary,我有两个字典列表,如下所示,都是不同长度的 list A = [{'key1':'001', 'key2':'AAA', 'key3':'BBB'}, {'key1':'002', 'key2':'BBB', 'key3':'CCC'}, {'key1':'003', 'key2':'XYZ', 'key3':'ZYX'}] list B = [{'key1':'001', 'key2':'AAA', 'key3':'BBB'},

我有两个字典列表,如下所示,都是不同长度的

list A = [{'key1':'001', 'key2':'AAA', 'key3':'BBB'}, 
              {'key1':'002', 'key2':'BBB', 'key3':'CCC'},
               {'key1':'003', 'key2':'XYZ', 'key3':'ZYX'}]

list B = [{'key1':'001', 'key2':'AAA', 'key3':'BBB'},
              {'key1':'002', 'key2':'ABX', 'key3':'GHT'}]
我想做一个列表a-列表B它应该返回给我这个列表包含新添加的字典,以及其中任何值都被更改的字典

列表A的结果-列表B将返回为

List A - List B = [ {'key1':'003', 'key2':'XYZ', 'key3':'ZYX'},
                    {'key1':'002', 'key2':'BBB', 'key3':'CCC'}]
我有不同的方法,有人能帮我吗

你可以试试这个:

list_A = [
    {'key1':'001', 'key2':'AAA', 'key3':'BBB'},
    {'key1':'002', 'key2':'BBB', 'key3':'CCC'},
    {'key1':'003', 'key2':'XYZ', 'key3':'ZYX'}
]

list_B = [
    {'key1':'001', 'key2':'AAA', 'key3':'BBB'},
    {'key1':'002', 'key2':'ABX', 'key3':'GHT'}
]                  



def list_subtraction(from_list, to_list):
    ''' Subtracts to_list from from_list'''
    list_c = []
    for i in list_A:
        if i not in list_B:
            list_c.append(i)
    return list_c            

print(list_subtraction(list_A, list_B))

希望这能帮上忙。

你为此做了什么?非常感谢你,它发挥了巨大的作用,挽救了我的一天