浅拷贝和深拷贝的区别 -------------------------- * 深拷贝是指创建一个新对象,并完全递归创建其所包含的自对象。 新创建的对象修改不用影响已有的对象。 * 浅拷贝是指对象赋值时,其中一部分指向一个已经存在的对象,而不是完全拷贝生成一个新对象。新的对象 修改会影响到已有的对象,例如: >>> a = [1, [1,2,3,4]] >>> b = a[:] >>> id(a) 44551944 >>> id(b) 44551704 >>> id(a[1]) 44615600 >>> id(b[1]) 44615600 >>> a[1][1]=100 >>> a [1, [1, 100, 3, 4]] >>> b [1, [1, 100, 3, 4]] 现在有a,b两个不同的对象,但其内容指向的对象是一个。如果我们修改了其中一个, 另外一个也会发生改变。这就是浅拷贝。 :: >>> import copy >>> c = copy.deepcopy(a) 使用copy.deepcopy的函数进行拷贝,此时拷贝就是深拷贝,a的修改就不会影响c。