码迷,mamicode.com
首页 > 编程语言 > 详细

python 复制 浅copy 深copy 的区别

时间:2019-10-06 00:44:02      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:oca   pytho   ESS   变化   image   区别   的区别   原来   函数   

1.浅copy:   外层添加元素时, 浅拷贝c不会随原列表a变化而变化;内层list添加元素时,浅拷贝c才会变化。
2.深copy:   无论原列表a如何变化,深拷贝d都保持不变。
3.赋值:    赋值对象随着原列表一起变化

   深拷贝:只有一种形式,copy模块中的deepcopy函数。
     和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。
     深拷贝出来的对象是一个全新的对象,不再与原来的对象有任何关联。

技术图片

import copy
a = [1,2,3,4,5,[a,b],6]
b = a
c =copy.copy(a)
d = copy.deepcopy(a)

a.append(7)

print(a)    #新增一个7
print(b)    #新增一个7
print(c)    #浅copy 不变
print(d)    #深copy不变
print(~~~~~~)
a[5].append(c)
print(a)
print(b)
print(c)
print(d)

 

/usr/local/bin/python3.7 "/code/赋值 浅copy 深copy.py"
[1, 2, 3, 4, 5, [‘a‘, ‘b‘], 6, 7]
[1, 2, 3, 4, 5, [‘a‘, ‘b‘], 6, 7]
[1, 2, 3, 4, 5, [‘a‘, ‘b‘], 6]
[1, 2, 3, 4, 5, [‘a‘, ‘b‘], 6]
~~~~~~
[1, 2, 3, 4, 5, [‘a‘, ‘b‘, ‘c‘], 6, 7]
[1, 2, 3, 4, 5, [‘a‘, ‘b‘, ‘c‘], 6, 7]
[1, 2, 3, 4, 5, [‘a‘, ‘b‘, ‘c‘], 6]
[1, 2, 3, 4, 5, [‘a‘, ‘b‘], 6]

Process finished with exit code 0

python 复制 浅copy 深copy 的区别

标签:oca   pytho   ESS   变化   image   区别   的区别   原来   函数   

原文地址:https://www.cnblogs.com/666sss/p/11626042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!