[英]How to merge two dictionaries with the same keys without overwriting data?
我有一個任務,我需要拿兩個 csv 並將其中的信息轉換成兩個字典。 兩個字典的鍵是相同的,我只需要將一本字典中的信息添加到鍵中而不是覆蓋。 例子:
dictionary 1 - 'key1' : ['place1' , 'web address', 'phone number']
dictionary 2 - 'key1' : ['place2', 'different web address', 'different phone number']
我希望最終的字典看起來像這樣:
finalDictionary - 'key1' : [['place1' , 'web address', 'phone number'], ['place2', 'different web address', 'different phone number']]
我會使用defaultdict
並遍歷 dict 中的所有鍵/值,以將所有值附加到最終 dict 中的列表中:
>>> dict1 = {'key1' : ['place1' , 'web address', 'phone number']}
>>> dict2 = {'key1' : ['place2', 'different web address', 'different phone number']}
>>> from collections import defaultdict
>>> final_dict = defaultdict(list)
>>> for d in (dict1, dict2):
... for k, v in d.items():
... final_dict[k].append(v)
...
>>> dict(final_dict)
{'key1': [['place1', 'web address', 'phone number'], ['place2', 'different web address', 'different phone number']]}
只需列出兩個字典中的值即可。 您可以使用字典理解為字典中的所有鍵執行此操作。
finalDictionary = {key: [dictionary1[key], dictionary2[key]] for key in dictionary1}
dct_1 = {'key1' : ['place1' , 'web address', 'phone number']}
dct_2 = {'key1' : ['place2', 'different web address', 'different phone number']}
final_dct = {'key1':[dct['key1'] for dct in [dct_1, dct_2]]}
(或更好)
list_of_dct = [{'key1': [stuff]},
{'key1': [more stuff]},
]
final_dct = {'key1':[dct['key1'] for dct in list_of_dct]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.