> greg whittier wrote:
>> On Thu, Mar 12, 2009 at 4:24 PM, ski <nor...@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
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to