我有下面一段Python代码,我试图在dictionary中实现浅层复制操作:
d = {'name':'Subhayan','age':32,'friends':['papa','mama']}
new_d = d.copy()
new_d['friends'] = []
print (d)
print (new_d)
现在根据我的理解,如果有一个嵌套的数据结构,比如列表,在我的情况下,浅拷贝将无法工作。新字典的变化也会影响到新字典。在
有人能告诉我我的理解是否正确吗?在
运行这个脚本后,我得到的答案是不同的。在
^{pr2}$很显然,这是在做深度复制。在
我哪里出错了?在
如果您希望在更改新字典时更改字典中的对象,则根本不应使用}
copy
或{只需将新的“d”分配给d:
https://docs.python.org/2/library/copy.html: 浅拷贝构造一个新的复合对象,然后(尽可能地)在其中插入对原始对象的引用。在
您没有更改被引用对象的内容,而是更改了对象(列表)本身。在
编写的代码不会遇到别名问题。但是,如果修改列表中的某个值,该更改将出现在两个字典中。在
相关问题 更多 >
编程相关推荐