我有两个字典需要合并:
a = {"name": "john",
"phone":"123123123",
"owns": {"cars": "Car 1", "motorbikes": "Motorbike 1"}}
b = {"name": "john",
"phone":"123",
"owns": {"cars": "Car 2"}}
如果在同一层次结构中
a
和b
有一个共同的键,结果应该是一个列表,其中包含两个值,并将其分配为共享键的值。
结果应该像这样:{"name": "john",
"phone":["123123123","123"],
"owns": {"cars": ["Car 1", "Car 2"], "motorbikes": "Motorbike 1"}}
使用 a.update(b)
无法正常工作,因为它会将 b
的共享值覆盖到 a
的共享值上,导致结果变成这样:
{'name': 'john', 'phone': '123', 'owns': {'cars': 'Car 2'}}
目标是合并字典而不覆盖,并保留与特定键相关的所有信息(在任一字典中)。
a
和b
共享一个具有不同值的键,则结果应该是一个列表,其中包含两个值,并将其分配为键的值。 - Depa