python-深拷贝和浅拷贝

浅拷贝:只会copy一层。

list = ["1"]
sourcelist = ["2",list]
copylist = copy.copy(sourcelist)

当改变list时,sourcelist和copylist会发生变化,因为在他们两之间,还是使用了原来list的内存空间。所以当原来内存的赋值发生改变时,自然而然copy的也会改变

深拷贝:会开辟独立的新的内存空间

list = ["1"]
sourcelist = ["2",list]
copylist = copy.copy(sourcelist)

这里,sourcelist中的list已经有了自己独立的空间,与原来的list的地址相互独立,不受影响。所以即使改变原来的list也不会改变sourcelist中的list

你可能感兴趣的:(笔记)