Skip to main content
 首页 » 编程设计

python之使用相似键和不同键的组合组合/合并字典

2025年05月04日25sharpest

我有两个字典:

dict1 = { 'url1': '1', 'url2': '2', 'url3': '3', 'url4': '4' } 
dict2 = { 'url1': '1', 'url2': '2', 'url5': '5', 'url6': '6' } 

并想将它们合并成一个看起来像这样的字典:

dict_merged = { 'url1': ['1','1'], 'url2': ['2','2'], 'url3': ['3','0'], 'url4': ['4','0'], 'url5': ['0','5'], 'url6': ['0','6'] } 

我已经有了以下代码来合并两者,但是如果在其中一个字典中找不到键,我该如何分配默认值 '0'?

dict_merged = dict() 
for key in (dict1.keys() | dict2.keys()): 
    if key in dict1: 
        merged.setdefault(key, []).append(dict1[key]) 
    if key in dict2: 
        merged.setdefault(key, []).append(dict2[key]) 

提前致谢!

请您参考如下方法:

使用dict.get 返回默认值。然后,您可以轻松地使用字典理解,而无需测试成员资格:

m = {k: [dict1.get(k, '0'), dict2.get(k, '0')] for k in dict1.keys()|dict2.keys()} 
print(m) 
# {'url4': ['4', '0'], 'url3': ['3', '0'], 'url1': ['1', '1'], 'url6': ['0', '6'], 'url5': ['0', '5'], 'url2': ['2', '2']}