Python 3.9+Словари (dict)понятие
d1 | d2
операторы
Оператор объединения словарей (Python 3.9+). Создаёт новый словарь, объединяя d1 и d2. При конфликте ключей побеждает правый операнд.
Синтаксис
merged = d1 | d2
Оба операнда обязаны быть словарями: a | [('x', 1)] упадёт с TypeError, тогда как a |= [('x', 1)] и a.update([...]) такой список пар примут. Оператор строит новый словарь, копируя обе стороны целиком, поэтому в цикле по многим словарям он квадратичен — там уместнее update() или |=. До версии 3.9 тот же эффект даёт {**a, **b}.
Примеры
a = {'x': 1, 'y': 2}
b = {'y': 10, 'z': 3}
result = a | b
print(result) # {'x': 1, 'y': 10, 'z': 3}
# аналог без оператора (до 3.9):
result = {**a, **b}
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности