我有以下两本词典,
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 的文件,因此字典包含非常大的数据。如何以优化的方式实现这一点?
我有以下两本词典,
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 的文件,因此字典包含非常大的数据。如何以优化的方式实现这一点?
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 需要大量内存,并且很可能会失败。
这是一种更 Pythonic 的方式:列表扩展将只考虑两个字典中不相等的值:
diffrent_keys = [key for key in d1 if d1[key] != d2[key] ]