Ошибка TypeError при объединении словарей: неподдерживаемые типы операндов для |: 'dict' и 'dict' - PullRequest
1 голос
/ 21 июня 2020

Я хотел объединить два словаря с помощью оператора | и получил следующую ошибку:

TypeError: unsupported operand type(s) for |: 'dict' and 'dict'

Код MWE следующий:

d1 = {'k': 1, 'l': 2, 'm':4'}
d2 = {'g': 3, 'm': 7}

e = d1 | d2

1 Ответ

2 голосов
/ 21 июня 2020

Операторы слияния (|) и обновления (|=) для словарей были введены в Python 3.9 , поэтому они не работают в более старых версиях. У вас есть возможность обновить интерпретатор Python до Python 3,9 или использовать одну из альтернатив:

# option 1:
e = d1.copy()
e.update(d2)

# option 2:
e = {**d1, **d2}

Однако, если вы хотите обновить до Python 3.9 вы можете сохранить некоторый словарь обновления памяти d1 напрямую вместо создания другого словаря с помощью операции слияния на месте:

d1 |= d2

Что эквивалентно следующему в более старых версиях Python:

d1.update(d2)
...