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