很多时候,我需要创建一个或两个彼此不同的字典。这是我通常的工作:
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})
当然,我可以使用分号将两个命令压缩为一条物理行,但这对我来说看起来很丑。还有其他选择吗?
最佳答案
我认为最简单的方法是这样的:
new_dict = {**old_dict, 'changed_val': value, **other_new_vals_as_dict}