Python 2.7 具有列表类型值的Comapring字典

Python 2.7 具有列表类型值的Comapring字典,python-2.7,Python 2.7,我有以下两本字典 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]} 我怎样才能比较这两本词典并得到正确的答案呢 不匹配键值对的位置(索引)?既然我在交易 由于文件大小约为2GB,字典包含非常大的 数据。如何以优化的方式实现这一点 def getUniqueEntry(dictionary1, dictionary2, listOfKeys): asser

我有以下两本字典

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]}
我怎样才能比较这两本词典并得到正确的答案呢 不匹配键值对的位置(索引)?既然我在交易 由于文件大小约为2GB,字典包含非常大的 数据。如何以优化的方式实现这一点

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需要大量的RAM,并且很可能失败。

< P>这是一个更大的Python方式:列表扩展将只考虑两个字典中不相等的值:

diffrent_keys = [key for key in d1 if d1[key] != d2[key] ]