获取包含字典的2个列表之间的差异
获取包含字典的2个列表之间的差异
这个问题已经有答案了:
list1 = [{'key1': 'item1'}, {'key2': 'item2'}] list2 = [{'key1': 'item1'}, {'key2': 'item2'}, {'key3': 'item3'}]
有没有一种方法可以获取两个列表之间的差异?
基本上,我需要一种可扩展的方法来获取包含字典的两个列表之间的差异。因此,我正在尝试比较这些列表,并只返回 {\'key3\':\'item3\'}
admin 更改状态以发布 2023年5月21日
你可以像这个例子那样使用推导式和 set()
:
def get_diff(elm1, elm2): a = set((m, n) for k in elm1 for m, n in k.items()) b = set((m, n) for k in elm2 for m, n in k.items()) if len(b) > len(a): return dict(b - a) return dict(a - b) list1 = [{'key1': 'item1'}, {'key2': 'item2'}] list2 = [{'key1': 'item1'}, {'key2': 'item2'}, {'key3': 'item3'}] get_diff(list1, list2)
输出结果:
{'key3': 'item3'}