from collections import defaultdict
lst = [{'a': 123}, {'a': 456},{'b': 789}]
dic = {}
for _ in lst:
for k, v in _.items():
dic.setdefault(k, []).append(v)
print [{k:v} for k, v in dic.items()]
In [1]: from collections import defaultdict
In [2]: list1 = [{'a': 123}, {'a': 456}, {'b': 789}]
In [3]: list2 = defaultdict(list)
In [4]: [list2[k].append(v) for i in list1 for k, v in i.items()]
Out[4]: [None, None, None]
In [5]: list2.items()
Out[5]: dict_items([('b', [789]), ('a', [123, 456])])
In [6]: dict(list2)
Out[6]: {'a': [123, 456], 'b': [789]}
In [7]:
用个map 键存在就append 不存在就赋值 最后转成list...