你好,我試圖獲取具有相同鍵的字典并合并其值,如果有重復,則只留下一個重復值。
data = {"test1":["data1", "data2"],
"test1":["data3", "data4", "data2"],
"test2":["1data", "2data"],
"test2":["3data", "4data", "2data"]
}
desired_result = {"test1":["data1", "data2", "data3", "data4"],
"test2":["1data", "2data", "3data", "4data"]
}
任何想法如何獲得結果?
uj5u.com熱心網友回復:
首先,您需要創建listof dict (因為您不能擁有具有相同鍵的字典),然后遍歷它們并將extend它們變為listwith key,dict然后set用于洗掉,duplicated如下所示:
data = [{"test1":["data1", "data2"]},{"test1":["data3", "data4", "data2"]},{"test2":["1data", "2data"]},{"test2":["3data", "4data", "2data"]}]
from collections import defaultdict
rslt_out = defaultdict(list)
for dct in data:
for k,v in dct.items():
rslt_out[k].extend(v)
for k,v in rslt_out.items():
rslt_out[k] = list(set((v)))
print(rslt_out)
輸出:
defaultdict(list,
{'test1': ['data3', 'data4', 'data2', 'data1'],
'test2': ['2data', '3data', '1data', '4data']})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/340114.html
