python中的深度复制和dict更新
我正在尝试获取dict的deepcopy,并在Python2.6中更新结果。以下代码运行良好:python中的深度复制和dict更新,python,python-2.x,Python,Python 2.x,我正在尝试获取dict的deepcopy,并在Python2.6中更新结果。以下代码运行良好: >>> a = {1:2} >>> b = copy.deepcopy(a) >>> b.update({3:4}) >>> b {1: 2, 3: 4} 而下面的代码不起作用 >>> a={1:2} >>> b = copy.deepcopy(a).update({3:4}) >>
>>> a = {1:2}
>>> b = copy.deepcopy(a)
>>> b.update({3:4})
>>> b
{1: 2, 3: 4}
而下面的代码不起作用
>>> a={1:2}
>>> b = copy.deepcopy(a).update({3:4})
>>> b
>>>
为什么第二个代码段给出了
None
?dict.update
是一个类似于list.sort
的就地操作,它不会返回一个值,它会修改调用它的原始对象
如果您实际上
printb
,您将看到None
,因为默认情况下,所有未指定返回值的python函数都将返回None。因此,您将b
分配给调用update
的结果,该结果实际上是None
您的更新方法实际上返回None
update()
methodoutput参数实际上是您提供的一个输入dict,它在函数中发生了变化