【发布时间】:2020-02-24 14:08:19
【问题描述】:
我不是在寻找这样的东西:
How do I merge two dictionaries in a single expression?
Generic way of updating python dictionary without overwriting the subdictionaries
Python: Dictionary merge by updating but not overwriting if value exists
我我正在寻找这样的东西:
输入:
d1 = {'a': 'a', 'b': 'b'}
d2 = {'b': 'c', 'c': 'd'}
输出:
new_dict = {'a': ['a'], 'b': ['b', 'c'], 'c': ['d']}
我有以下代码有效,但我想知道是否有更有效的方法:
首先,我创建一个列表“unique_vals”,其中存储了两个字典中存在的所有值。 由此,创建了一个新字典,用于存储两个字典中存在的所有值
unique_vals = []
new_dict = {}
for key in list(d1.keys())+list(d2.keys()) :
unique_vals = []
try:
for val in d1[key]:
try:
for val1 in d2[key]:
if(val1 == val) and (val1 not in unique_vals):
unique_vals.append(val)
except:
continue
except:
new_dict[key] = unique_vals
new_dict[key] = unique_vals
然后,对于两个字典中未在此新字典中列出的每个值,这些值将附加到新字典中。
for key in d1.keys():
for val in d1[key]:
if val not in new_dict[key]:
new_dict[key].append(val)
for key in d2.keys():
for val in d2[key]:
if val not in new_dict[key]:
new_dict[key].append(val)
【问题讨论】:
标签: python dictionary