我经常需要创造一个或两个项目不同于另一个听写。以下是我通常做的事情:
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})
当然,我可以使用分号将两个命令压缩到一个物理行中,但这在我看来很难看。还有其他选择吗?
我认为最简单的方法是这样的:
这样,如果在
setup1
中不存在新键,则会添加新键,否则会替换旧的键/值对。可以在字典构造函数中使用关键字参数进行更新
这相当于:
Source
注意:
dict.copy()
创建一个浅拷贝。相关问题 更多 >
编程相关推荐