TypeError: unsupported operand type(s) for +: 'dict_items' and 'dict_items'
Что я делаю неправильно?
Ответ 1
В python3, dict.items() возвращает объект с типом dict_items, который, по-видимому, не может быть добавлен. (в python 2 он возвратил list, который можно было добавить).
Альтернативный способ добавить пару словарей, которые работают на py2k и py3k:
d = dict1.copy()
d.update(dict2)
Конечно, есть некоторая двусмысленность в отношении того, что вы хотите совершить в случае ключевых столкновений. например если оба dicts имеют key1, чей key1 должен быть сохранен на выходе? Или вы должны использовать некоторую комбинацию обоих своих значений? В последнем случае вы, вероятно, захотите что-то из модуля collections (либо defaultdict, либо Counter)
Ответ 2
Первая проблема заключается в том, что это двусмысленно - словари не могут иметь повторяющиеся ключи, поэтому неясно, что вы имеете в виду, что должно произойти, если оба содержат один и тот же ключ?
Что вы, возможно, захотите, это union: d1.items() | d2.items(), который даст вам набор кортежей (key, value). Если вы затем передадите его на dict() и будут дубликаты, последнее значение будет использовано.