Очень часто мне нужно создавать dicts, которые отличаются друг от друга одним или двумя элементами. Вот что я обычно делаю:
setup1 = {'param1': val1,
'param2': val2,
'param3': val3,
'param4': val4,
'paramN': valN}
setup2 = copy.deepcopy(dict(setup1))
setup2.update({'param1': val10,
'param2': val20})
Тот факт, что есть точка в программе, в которой setup2
является идентичной копией setup1
, заставляет меня нервничать, поскольку я боюсь, что в какой-то момент жизни программы две линии могут быть разделены, который является скользким наклоном к слишком большому количеству ошибок.
В идеале я хотел бы иметь возможность выполнить это действие в одной строке кода (что-то вроде этого):
setup2 = dict(setup1).merge({'param1': val10,
'param2': val20})
Конечно, я могу использовать точку с запятой, чтобы сжать две команды в одну физическую линию, но это выглядит довольно уродливо для меня. Есть ли другие варианты?