我有以下2个词典,
d1={"aa":[1,2,3],"bb":[4,5,6],"cc":[7,8,9]}
d2={"aa":[1,2,3],"bb":[1,1,1,1,1,1],"cc":[7,8]}
我怎么能比较这两个词典并得到 UNMATCHED键值对的位置(索引)?因为我正在处理 对于大小约为2 GB的文件,字典包含非常大的 数据。如何以优化的方式实施?
答案 0 :(得分:1)
def getUniqueEntry(dictionary1, dictionary2, listOfKeys):
assert sorted(dictionary1.keys()) == sorted(dictionary2.keys()), "Keys don't match" #check that they have the same keys
for key in dictionary1:
if dictionary1[key] != dictionary2[key]:
listOfKeys.append(key)
调用该函数时,第三个参数listOfKeys
是一个空列表,您希望存储密钥。请注意,将2 gb的数据读入dict需要很多内存并且很可能会失败。
答案 1 :(得分:0)
这是一种更加pythonic的方式:列表扩展将只考虑两个字典中不相等的值:
diffrent_keys = [key for key in d1 if d1[key] != d2[key] ]