如何在一行代码中复制并修改一个字典

12 浏览
0 Comments

如何在一行代码中复制并修改一个字典

很多时候我需要创建只有一个或两个项目不同的字典。以下是我通常的做法:

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})

当然,我可以使用分号将两个命令压缩到一行物理行中,但这对我来说看起来很丑陋。还有其他选择吗?

0