[Tutor] merging dictionary values based on key
greg whittier
greg at thewhittiers.com
Thu Mar 12 21:32:51 CET 2009
On Thu, Mar 12, 2009 at 4:24 PM, ski <norman at khine.net> wrote:
> Hello,
> I have this issue, which I am unsure on how to solve.
>
>>>> mylist1 = {'a': 'x123', 'b':'12'}
>>>> mylist2 = {'a': 'x234', 'c': 'a23'}
>>>> for k in mylist2:
> ... if k in mylist1:
> ... mylist1[k] = [mylist1[k], mylist2[k]]
> ... else:
> ... mylist1[k] = mylist2[k]
> ...
>>>> mylist1
> {'a': ['x123', 'x234'], 'c': 'a23', 'b': '12'}
>>>>
>
> this merges the two dictionaries, but what should be the method if:
>
>>>> mylist = [{'a': 'x123', 'b':'12'}, {'a': 'x234', 'b': 'd33', 'c':
>>>> 'a23'}, {'a': 'x234', 'c': 'XX123'} .... ]
>
> where mylist has nth number of dictionaries and i want to merge the values
> of the keys that are the same?
>
> Thanks
>
> Norman
If I understand what you mean by merging, I think you want
mylist = [{'a': 'x123', 'b':'12'}, {'a': 'x234', 'b': 'd33', 'c':
'a23'}, {'a': 'x234', 'c': 'XX123'} .... ]
merged_dict = {}
for dictionary in mylist:
for key, value in dictionary.items():
merged_dict.setdefault(key,[]).append(value)
More information about the Tutor
mailing list