一种选择是将您遇到的所有列表转换成字典,并将索引作为键。例如:
# add this function to the same moduledef list_to_dict(l): return dict(zip(map(str, range(len(l))), l))# add this pre under the 'if type(d2[k]) == dict' block elif type(d2[k]) == list: dd(list_to_dict(d1[k]), list_to_dict(d2[k]), k)
这是带有注释的示例词典的输出:
>>> d1 = {"name":"Joe", "Pets":[{"name":"spot", "species":"dog"}]}>>> d2 = {"name":"Joe", "Pets":[{"name":"spot", "species":"cat"}]}>>> dd(d1, d2, "base")Changes in baseChanges in PetsChanges in 0species changed in d2 to catDone with changes in 0Done with changes in PetsDone with changes in base
请注意,这将按索引对索引进行比较,因此需要进行一些修改才能很好地适用于添加或删除的列表项。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)