因此,我尝试制作dict的一个深度副本,并用一些额外的数据更新它(我不想更改我原来的dict):
>>> a = {1:1}
>>> print(a)
{1: 1}
>>> b = copy.deepcopy(a).update({2:2})
>>> print(b)
None
但当我用另一种方式做的时候,它是有效的:
>>> a = {1:1}
>>> b = copy.deepcopy(a)
>>> b.update({2:2})
>>> print(b)
{1: 1, 2: 2}
当我在同一行上更新时,为什么Python将b
变量设置为None
?你知道吗
我也试着复制原文:
>>> a = {1:1}
>>> a = copy.deepcopy(a).update({2:2})
>>> print(a)
None
但是:
>>> a = {1:1}
>>> a = copy.deepcopy(a)
>>> a
{1: 1}
所以这就是dict.update
问题?或者可能是CPython相关的行为?你知道吗
dict.update
更新你的字典,它不会返回它,所以b
不是你想象的那样。你知道吗相关问题 更多 >
编程相关推荐