[Tutor] merging dictionary values based on key
Martin Walsh
mwalsh at mwalsh.org
Fri Mar 13 03:08:54 CET 2009
> greg whittier wrote:
>> On Thu, Mar 12, 2009 at 4:24 PM, ski <norman at khine.net> wrote:
>>>>>> 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?
>>>
>>
>> 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)
Or similarly with defaultdict:
from collections import defaultdict
merged_dict = defaultdict(list)
for d in mylist:
for k, v in d.items():
merged_dict[k].append(v)
ski wrote:
> how would you do this for a specific key instead of all the keys?
alist = [d['a'] for d in mylist if d.has_key('a')]
HTH,
Marty
More information about the Tutor
mailing list