d = {1:[]}
dic = d.copy()
dic[1].append(2)
print "d=", d
print "dic=", dic
输出
d= {1:[2]}
dic= {1:[2]}
如何在dic
不更改d
和返回的情况下分配
d= {1:[]}
dic= {1:[2]}
d = {1:[]}
dic = d.copy()
dic[1].append(2)
print "d=", d
print "dic=", dic
d= {1:[2]}
dic= {1:[2]}
如何在dic
不更改d
和返回的情况下分配
d= {1:[]}
dic= {1:[2]}
In [5]: import copy
In [6]: d = {1:[]}
In [7]: dic = copy.deepcopy(d)
In [8]: dic[1].append(2)
In [9]: d
Out[9]: {1: []}
In [10]: dic
Out[10]: {1: [2]}
你现在拥有的是一个浅拷贝:它只是复制了 list reference。结果,如果您在一个字典中更改列表的内容,它也会在另一个字典中更改。
您可以使用deepcopy
函数(而不是copy
)来制作与 相同的新字典d
。不要忘记通过导入它from copy import deepcopy
。