Dictionaries
Tim Chase
python.list at tim.thechases.com
Wed Oct 18 12:37:25 EDT 2006
> However It does not work as I would need.
> Let's suppose I have
>
> a={'c':1,'d':2}
> b={'c':2}
> but
> a.update(b)
> will make
> {'c': 2, 'd': 2}
>
> and I would need
> {'c': 3, 'd': 2}
Ah...a previously omitted detail.
There are likely a multitude of ways to do it. However, the one
that occurs to me off the top of my head would be something like
dict((k, a.get(k, 0) + b.get(k, 0)) for k in a.keys()+b.keys())
If the sets are huge, you can use itertools
>>> from itertools import chain
>>> dict((k, a.get(k, 0) + b.get(k, 0)) for k in
chain(a.keys(),b.keys()))
{'c': 3, 'd': 2}
which would reduce the need for creating the combined dictionary,
only to throw it away.
-tkc
More information about the Python-list
mailing list