> 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