[英]Consolidate keys in list of dictionaries
我有一個帶有任意數量的重復鍵的詞典列表。 我想合並鍵並返回值的列表(即使鍵是不同的,如以下示例中的“ 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]}]
我當前的方法有點混亂,我只是在尋找代碼
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
因為它以相同的名稱遮蓋了全局函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.