Python Glossary English

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Сообщить о неточности