Dictionaries
Lad
python at hope.cz
Thu Oct 19 03:22:10 EDT 2006
Steven,
Thank you for help;
Here is a code that works in a way I need
A={'c':1,'d':2,'e':3,'f':2}
B={'c':2,'e':1}
if len(A)>=len(B):
Delsi=B
C = A.copy()
else:
Delsi=A
C = B.copy()
for key, value in Delsi.items():
if C.has_key(key):
C[key]=C[key]+value
else:
C[key]=value
How easy :-)
Regards,
L.
Steven D'Aprano wrote:
> On Wed, 18 Oct 2006 09:31:50 -0700, Lad wrote:
>
> >
> > Steven,
> > Thank you for your reply and question.
> >
> >>
> >> What should the result be if both dictionaries have the same key?
> > The answer: the values should be added together and assigned to the key
> > That is
> > {'a':1, 'b':5}
> > ( from your example below)
> >
> > Is there a solution?
>
> Of course there is a solution. You just have to program it.
>
> Look again at my example code before:
>
> def add_dict(A, B):
> """Add dictionaries A and B and return a new dictionary."""
> C = A.copy() # start with a copy of A
> for key, value in B.items():
> if C.has_key(key):
> raise ValueError("duplicate key '%s' detected!" % key)
> C[key] = value
> return C
>
>
> Can you see how to modify this function to do what you want?
>
> (Hint: instead of raising a ValueError exception, you want to do something
> else.)
>
>
> --
> Steven.
More information about the Python-list
mailing list