直接赋值:其实就是对象的引用(别名)。
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
浅拷贝需要涉及到数据在内存中如何存储,这部分可以看http://www.cnblogs.com/yuanchenqi/articles/5782764.html,里面有较为详细的图文讲解,深浅拷贝的例子可以参照菜鸟教程http://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html。这个坑等以后再来详细填,没怎么用到暂时
浅拷贝,copy(),拷贝的是目标对象的指针地址
深拷贝,相当于完全复制了一份内容,和源数据不再有任何联系,需要从copy模块导入
谨以此文,纪念给烦躁于深浅拷贝的你我
s= [1,'hello','world']
#想复制一份列表
#s1 = [1,'hello','world']
#s1[0]=2
# print(s)
# print(s1)
s2 = s.copy()#copy方法拷贝一份和s列表一样的列表
print(s2)
s2[0]=3 #拷贝后修改s2的值,s的值不会改变
print(s,s2)
l = [[1,2,3],23,34,45]
l1 = l.copy()
l1[0][1]=100
print(l)#得到的结果[[1, 100, 3], 23, 34, 45]
print(l1)#得到的结果[[1, 100, 3], 23, 34, 45]
import copy
l2 = copy.deepcopy(l)#得到的l2是一份完全新的数据,和l没有任何关系了
l2[0][1]=200
print(l2)#结果是[[1, 200, 3], 23, 34, 45]
print(l)#结果是[[1, 100, 3], 23, 34, 45]