我有一个字典列表,其中包含任意数量的重复键。我想合并键和值的返回列表(即使键是不同的,如下例中的'c'和'd'):
input = [{'a': 2},
{'b': 3},
{'c': 1},
{'a': 3},
{'a': 5},
{'d': 7},
{'b': 4}]
期望的输出:
output = [{'a': [2,3,5]}, {'b': [3, 4]}, {'c': [1]}, {'d': [7]}]
我目前的方法有点乱,我只想找代码
答案 0 :(得分:2)
defaultdict似乎是一个不错的选择:
from collections import defaultdict
output = defaultdict(list)
for d in input:
for key in d.keys():
output[key].append(d[key])
output = [{k: output[k]} for k in output]
(打印中间值以查看正在发生的事情)。
ps:您可能不应该为变量input
命名,因为它会以相同的名称隐藏全局函数。