collections.ChainMap
Объединяет несколько словарей в одно представление: поиск идёт по словарям слева направо.
Сигнатура
collections.ChainMap(*maps)ChainMap не копирует данные, а связывает словари в цепочку. Чтение возвращает значение из первого словаря, где встречается ключ; запись по умолчанию идёт в первый словарь. Удобно для слоёв конфигурации (значения по умолчанию, переопределения).
from collections import ChainMap
defaults = {'color': 'red', 'size': 'M'}
user = {'color': 'blue'}
cfg = ChainMap(user, defaults)
print(cfg['color']) # 'blue' (из user)
print(cfg['size']) # 'M' (из defaults)
cfg['size'] = 'L'
print(user) # {'color': 'blue', 'size': 'L'}