試圖谷歌如何合并多個字典,但找不到在字典中的同一鍵下合并值的解決方案。雖然原始資料是串列,但預期的結果應該是字典。我被堆在這里,希望有人告訴我解決這個問題的方法。
原始資料:
data = [
{'Supplement': {'label': 'Protein - 25.0', 'value': 1}},
{'Fruit and vegetable': {'label': 'Test - 100.0', 'value': 2}},
{'Fruit and vegetable': {'label': 'Peach - 10.0', 'value': 3}},
{'Protein': {'label': 'Yakiniku - 100.0', 'value': 4}}
]
預期成績:
data_merged = {
'Supplement': [ {'label': 'Protein - 25.0', 'value': 1}],
'Fruit and vegetable': [{'label': 'Test - 100.0', 'value': 2}, {'label': 'Peach - 10.0', 'value': 3}],
'Protein': [{'label': 'Yakiniku - 100.0', 'value': 4}]
}
uj5u.com熱心網友回復:
您可以通過遍歷串列和字典來做到這一點。像這樣:
import collections
data = [
{'Supplement': {'label': 'Protein - 25.0', 'value': 1}},
{'Fruit and vegetable': {'label': 'Test - 100.0', 'value': 2}},
{'Fruit and vegetable': {'label': 'Peach - 10.0', 'value': 3}},
{'Protein': {'label': 'Yakiniku - 100.0', 'value': 4}}
]
res = collections.defaultdict(lambda: [])
for dct in data:
for key in dct:
res[key].append(dct[key])
print(dict(res))
與其他答案不同,這也適用于具有多個鍵的字典。
uj5u.com熱心網友回復:
Python 沒有提供內置的方式來像您想要的那樣合并字典,您只需要快速遍歷所有字典并添加它。
new_data = {}
for i in data:
if not new_data[i]:
new_data[i] = [data[i]
else:
new_data[i] = [data[i]]
這應該足夠了
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/522830.html
標籤:Python字典
上一篇:為什么空字串沒有附加到地圖中?
