我认为这是最好使用的集对称差操作要做到这一点(https://docs.python.org/2/library/sets.html)。
>>> dict1 = {1:'donkey', 2:'chicken', 3:'dog'}
>>> dict2 = {1:'donkey', 2:'chimpansee', 4:'chicken'}
>>> set1 = set(dict1.items())
>>> set2 = set(dict2.items())
>>> set1^set2
{(2, 'chimpansee'), (4, 'chicken'), (2, 'chicken'), (3, 'dog')}
它是对称的,因为:
>>> set2^set1
{(2, 'chimpansee'), (4, 'chicken'), (2, 'chicken'), (3, 'dog')}
使用差分算
>>> set1 - set2
{(2, 'chicken'), (3, 'dog')}
>>> set2 - set1
{(2, 'chimpansee'), (4, 'chicken')}
时,但是它可能不为结果设置为转换一个好主意,这是不是这样的字典,因为你可能会丢失信息:
>>> dict(set1^set2)
{2: 'chicken', 3: 'dog', 4: 'chicken'}
你还需要找到,如果差键是相同的,但它们的值不同? –
请不要在这里将您的问题标记为“紧急” - 所有问题都具有同等重要性。谢谢! – halfer