What's the cleanest way to compare 2 dictionary?
John Henry
john106henry at hotmail.com
Wed Aug 9 17:55:22 EDT 2006
Paddy wrote:
> John Henry wrote:
> > Hi list,
> >
> > I am sure there are many ways of doing comparision but I like to see
> > what you would do if you have 2 dictionary sets (containing lots of
> > data - like 20000 keys and each key contains a dozen or so of records)
> > and you want to build a list of differences about these two sets.
> >
> > I like to end up with 3 lists: what's in A and not in B, what's in B
> > and not in A, and of course, what's in both A and B.
> >
> > What do you think is the cleanest way to do it? (I am sure you will
> > come up with ways that astonishes me :=) )
> >
> > Thanks,
> I make it 4 bins:
> a_exclusive_keys
> b_exclusive_keys
> common_keys_equal_values
> common_keys_diff_values
>
> Something like:
>
> a={1:1, 2:2,3:3,4:4}
> b = {2:2, 3:-3, 5:5}
> keya=set(a.keys())
> keyb=set(b.keys())
> a_xclusive = keya - keyb
> b_xclusive = keyb - keya
> _common = keya & keyb
> common_eq = set(k for k in _common if a[k] == b[k])
> common_neq = _common - common_eq
>
>
> If you now simple set arithmatic, it should read OK.
>
> - Paddy.
Thanks, that's very clean. Give me good reason to move up to Python
2.4.
More information about the Python-list
mailing list