Python 混合使用相似键和不同键组合/合并词典

Python 混合使用相似键和不同键组合/合并词典,python,python-3.x,Python,Python 3.x,我有两本字典: 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'],

我有两本字典:

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'] }
我已经有了下面的代码来合并这两者,但是如果在其中一个dict中找不到键,我如何分配默认值
'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
返回默认值。然后,您可以轻松使用dict理解,无需测试会员资格:

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']}

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

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']}

使用
set().union()
的@Moses Koledoye的各种回答:


使用
set().union()
的@Moses Koledoye的各种回答:


可能重复的可能重复的哇!太快了!非常感谢。我可能会将此概括为-但不值得回答,因为它实际上是同一件事。|服务于什么?@MishaVacic
|
its
union
。看我的答案,这是各种各样的摩西·科莱多耶。好了,我现在明白了。哇!太快了!非常感谢。我可能会将此概括为-但不值得回答,因为它实际上是同一件事。|服务于什么?@MishaVacic
|
its
union
。看我的答案,这是各种各样的摩西·科莱多耶。好吧,我现在明白了。