Давайте будем ясно, что здесь происходит!
In [7]: x.items()
Out[7]: [(1, 3), (2, 2)]
In [8]: y.items()
Out[8]: [(1, 3), (3, 1)]
In [9]: x.items() + y.items()
Out[9]: [(1, 3), (2, 2), (1, 3), (3, 1)]
In [10]: dict(x.items() + y.items())
Out[10]: {1: 3, 2: 2, 3: 1}
items()
выдает список (ключ, значение) кортежи, и +
присоединяет списки. Затем вы можете перевести этот список в словарь, который будет обрабатывать дубликаты ключей, беря последнее значение с заданным ключом. Так как это повторяющееся значение в этот раз, это не имеет значения, но он мог:
In [11]: z = {1:4, 3:1}
In [12]: dict(x.items() + z.items())
Out[12]: {1: 4, 2: 2, 3: 1}
В этом случае 1: отбрасывается запись 3 ...
(Не ясно, что ваша аналогия с полиномами это ... Если вы действительно хотите, чтобы представить полиномы, которые добавляют арифметический, вы можете захотеть, чтобы проверить numpy класс poly1d или collections.Counter
описываемых @adw.)
Вы должны лучше объяснить, что вы ожидаете получить, когда вы «добавить» словари, и, в частности, почему вы ожидаете он должен делать то, что, по вашему мнению, должен скорее, чем то, что он на самом деле делает ... –
Кто вы («мы») и почему вы используете 'x.items() + y.items()' для добавления двух словарей ? – tzot