I have 2 dictionaries, A and B. A has 700000 key-value pairs and B has 560000 key-values pairs. All key-value pairs from B are present in A, but some keys in A are duplicates with different values and some have duplicated values but unique keys. I would like to subtract B from A, so I can get the remaining 140000 key-value pairs. When I subtract key-value pairs based on key identity, I remove lets say 150000 key-value pairs because of the repeated keys. I want to subtract key-value pairs based on the identity of BOTH key AND value for each key-value pair, so I get 140000. Any suggestion would be welcome.
This is an example:
A = {'10':1, '11':1, '12':1, '10':2, '11':2, '11':3}
B = {'11':1, '11':2}
I DO want to get: A-B = {'10':1, '12':1, '10':2, '11':3}
I DO NOT want to get:
a) When based on keys:
{'10':1, '12':1, '10':2}
or
b) When based on values:
{'11':3}
difference
in set. – Cantinacollections.Counter
a subclass of dict.collections.Counter
has asubtract
method. – EpigraphicA = {'x':10, 'y':5, 'z':1}
andB = {'x':10, 'y':3}
should the result be{'y':2, 'z':1}
or{'y':5, 'z':1}
? – EpigraphicA = {'10':1, '11':1, '12':1, '10':2, '11':2, '11':3}
is not possible. If you do this at the python prompt, you will get something like{'11': 3, '10': 2, '12': 1}
for A. – Leisurely