可以理解为:浅拷贝就是对引用的拷贝,所谓深拷贝就是对对象的资源的拷贝。(类似java)
赋值操作的理解:
- 赋值是将一个对象的地址赋值给一个变量,让变量指向该地址
- 修改不可变对象(str、tuple)需要开辟新的空间
- 修改可变对象(list等)不需要开辟新的空间
- b = a 与 b=a[:]的区别
- b=a 表示b引用a,则意味着b指向a的地址
- b=a[:] a[:]创建了一个a的副本,是一个深拷贝,则意味着b引用a的副本,b与a中元素的地址不同,只是值相同
例子:
a=[1,2,3] b=a b[:]=[x+1 for x in a] print a, b 输出:[2, 3, 4] [2, 3, 4] b = [x-1 for x in a] print a,b 输出:[2, 3, 4] [1, 2, 3]
python 深拷贝&浅拷贝
最后发布:2017-09-09 21:15:58首次发布:2017-09-09 21:15:58