python对比list里的字典差异,非difference方式
举例子我们拥有这样的列表:
#旧的
a = [{'aaa': 'docx', 'path': 'C:\\Users\\', 'saveas': 'aaa aaaSystem User Manual v1.0.docx', 'tname': 'template.docx'}, {'aaa': 'xlsx', 'path': 'C:\\Users\\', 'saveas': 'aaa Employee Payroll (202210)-confidential.xlsx', 'tname': 'template.xlsx'}]
# 新的
b = [{'aaa': 'docx', 'path': 'C:\\Users\\', 'saveas': 'aaa aaaSystem User Manual v1.0.docx', 'tname': 'templatebb.docx'}, {'aaa': 'xlsx', 'path': 'C:\\Users\\', 'saveas': 'aaa Employee Payroll (202210)-confidential.xlsx', 'tname': 'templatebbb.xlsx'}]
需要实现的目的是,比较这两个列表里的字典每次发生了什么变化,有什么差异
按照传统方式使用set.difference方式不可行,因为list内部是字典类型,会报错,所以可以使用如下方式得到结果。
delete = list()
# 会打印出删掉的
for i in a:
if i not in b:
delete.append(i)
print("删掉的")
print(delete)
# 会打印新的出来
new = list()
for i in b:
if i not in a:
new.append(i)
print("新增的")
print(new)