簡體   English   中英

合並字典列表中的鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM