我有这个问题要解决。我尝试了很多方法。但是无法用最少的代码找出有效的方法。
my_list = [{'qwerty': 'hello'},
{'asdfg': 'watermelon'},
{'asdfg': 'banana'}]
merge_list_of_dicts(my_list)
returns the below list.
[{'qwerty': ['hello']},
{'asdfg': ['watermelon','banana']}]
答案 0 :(得分:1)
首先创建一个列表字典,然后附加原始数据中的值。
您想要一个字典列表而不是一个字典似乎很奇怪,所以我提供了两者。
尝试以下代码:
{'qwerty': ['hello'], 'asdfg': ['watermelon', 'banana']}
[{'qwerty': ['hello']}, {'asdfg': ['watermelon', 'banana']}]
输出
{{1}}
答案 1 :(得分:0)
您没有告诉我们merge_list_of_dicts()
内部的内容,但是实现此目的的一种方法是:
from collections import defaultdict
my_list = [{'qwerty': 'hello'},
{'asdfg': 'watermelon'},
{'asdfg': 'banana'}]
def merge_list_of_dicts(list_of_dicts: list) -> list:
merged = defaultdict(list)
for d in list_of_dicts:
for key, value in d.items():
merged[key].append(value)
return [{k: v} for k, v in merged.items()]
print(merge_list_of_dicts(my_list))
输出:
[{'qwerty': ['hello']}, {'asdfg': ['watermelon', 'banana']}]
答案 2 :(得分:-1)
如果您向我们展示您实现的功能会更好。一种简单的方法是遍历列表,然后遍历每个字典,然后将每个dict值:key添加到主字典中。
mylist = [{"fruit" : "apple"}, {"drink" : "apple juice"}, {"meals" : ["apple pies", "apple salad"]}]
newdict = {}
for dictionary in mylist:
for key in dictionary:
newdict[key] = dictionary[key]
print(newdict)