Malcolm Greene wrote: > I have a bunch of pickled dicts I would like to merge. I only want to > merge unique keys but I want to track the keys that are duplicated > across dicts. Is there a newer dict-like data structure that is fine > tuned to that use case? > Short of an optimized data structure, my plan is to convert dict keys to > sets and compare these sets to determine which keys are unique and can > be merged and which keys are dupes and should be tracked in that manner. > At a high level, does this sound like a reasonable approach? > Thank you, > Malcolm
Do you want merge(dict(a=1, b=2), dict(a=10, c=30)) --> dict(b=2, c=30) or merge(dict(a=1, b=2), dict(a=10, c=30)) --> dict(a=1, b=2, c=30) ? In the latter case just reverse the updates, in the former you can operate directly on the keys: >>> a = dict(a=1, b=2) >>> b = dict(a=10, c=30) >>> a.keys() & b.keys() {'a'} >>> a.keys() ^ b.keys() {'c', 'b'} For Python 2 replace keys() with viewkeys(). -- https://mail.python.org/mailman/listinfo/python-list