首页 > 代码库 > python学习——拷贝相关概念
python学习——拷贝相关概念
概念
在python中,对象赋值实际上是对象的引用。拷贝一般有三种方法:
- 直接赋值
- 浅拷贝
- 深拷贝
区别
直接赋值:传递对象的引用,原始列表和赋值列表都可以改变列表的值。
1 >>> a = [1,2,3,4,5] 2 >>> b = a 3 >>> b.append(6) 4 >>> b 5 [1, 2, 3, 4, 5, 6] 6 >>> a 7 [1, 2, 3, 4, 5, 6]
浅拷贝:父对象已经是全新的了,子对象还是指向同一个对象(id相同),改变子对象还是对全部对象都有影响。
1 >>> import copy 2 >>> a = [1,2,3,[4,5]] 3 >>> b = copy.copy(a) 4 >>> a[3].append(1) 5 >>> a 6 [1, 2, 3, [4, 5, 1]] 7 >>> b 8 [1, 2, 3, [4, 5, 1]] 9 >>> id(a[3]) 10 140729508644408 11 >>> id(b[3]) 12 140729508644408
深拷贝:父对象和子对象都是全新的了(id不同),改变其中一个不会对别的对象造成任何影响。
1 >>> a 2 [1, 2, 3, [4, 5, 1]] 3 >>> b = copy.deepcopy(a) 4 >>> b 5 [1, 2, 3, [4, 5, 1]] 6 >>> a[3].append(2) 7 >>> a 8 [1, 2, 3, [4, 5, 1, 2]] 9 >>> b 10 [1, 2, 3, [4, 5, 1]] 11 >>> id(a[3]) 12 140729508644408 13 >>> id(b[3]) 14 140729508644768
python学习——拷贝相关概念
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。