[Tutor] merging dictionary values based on key
ski
norman at khine.net
Fri Mar 13 00:05:06 CET 2009
how would you do this for a specific key instead of all the keys?
greg whittier wrote:
> 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)
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list