Объединить dicts и создать список, если дубликаты ключей

У меня есть два диктата на Python, которые я хочу объединить. Некоторые из ключей существуют в обоих dicts, и я бы хотел, чтобы они были в списке в новом dict. Как это:

A = {'item1': 'val1', 'item2': 'val2'}
B = {'item2': 'val3', 'item3': 'val4'}

Должно возникнуть следующее:

{'item1': 'val1', 'item2': ['val2', 'val3'], 'item3': 'val4'}

Как мне это сделать?

1 ответ

Вот несколько четких кодов, которые можно достичь на эффективном пути.

import collections

newMap = collections.defaultdict(list)

for key, value in A.iteritems():
 newMap[key].append(value)

licensed under cc by-sa 3.0 with attribution.