copy仅拷贝对象本身,而不对中的子对象进行拷贝,故对子对象进行修改也会随着修改。
子对象就是列表中的列表(套娃行为)
deepcopy是真正意义上的复制,即从新开辟一片空间。我们经常说的复制实际上就是deepcopy.
代码展示:
import copy
a = [1,2,3,[4,5],6]
a = b
//注意list的“=" 赋值:这种语法实际上是将新变量关联到旧变量的列表中,即两个变量名都指向同一个列表,对任一变量进行操作都会影响变量
c = copy.copy(a)
d = deepcopy.copy(a)
进行插入操作
a = a.append(7)
则输出的a:[1,2,3,[4,5],6,7]
b: [1,2,3,[4,5],6,7]
c : [1,2,3,[4,5],6]
d: [1,2,3,[4,5],6]
假如对a里面的子对象进行修改:
a = a[4].append(8)
则输出的a:[1,2,3,[4,5,8],6,7]
b: [1,2,3,[4,5,8],6,7]
c : [1,2,3,[4,5,8],6]
d: [1,2,3,[4,5],6]