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. -- http://mail.python.org/mailman/listinfo/python-list