计算2个词典中的所有差异并将它们全部显示出来

Nat*_*ate 4 python dictionary counting difference

假设我有2个词典:

A = {'banana':10, 'apple':2, 'pear':5, 'orange':3}  
B = {'banana':7, 'orange':5, 'strawberry':4, 'blueberry':1, 'kiwi':10}  
Run Code Online (Sandbox Code Playgroud)

现在,我需要打印这些词典的所有差异并将它们全部显示出来(即使其中有一个键A不在B或以其他方式),当然还有绝对值,所以结果应该是:

c = {'banana':3, 'apple':2, 'pear':5, 'orange':2, 'strawberry':4, 'blueberry':1, 'kiwi':10}  
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我之前看过一些帖子,但只是部分回答了这个需求.

Sam*_*uns 7

使用collections.Counter:

from collections import Counter

A = {'banana':10, 'apple':2, 'pear':5, 'orange':3}
B = {'banana':7, 'orange':5, 'strawberry':4, 'blueberry':1, 'kiwi':10}

A_Counter, B_Counter = Counter(A), Counter(B)

print((A_Counter - B_Counter) | (B_Counter - A_Counter))
Run Code Online (Sandbox Code Playgroud)

输出:

Counter({'kiwi': 10, 'pear': 5, 'strawberry': 4, 'banana': 3, 'apple': 2, 'orange': 2, 'blueberry': 1})
Run Code Online (Sandbox Code Playgroud)