美文网首页Python
Python基础(42) - 浅拷贝和深拷贝

Python基础(42) - 浅拷贝和深拷贝

作者: xianling_he | 来源:发表于2020-03-12 19:16 被阅读0次

两者的区别

  • copy: 浅拷贝,只复制深层对象的引用
  • deepcopy: 深拷贝,复制深层对象本身

copy deepcopy 的使用

  • 代码如下:
import copy

a = [1,2,3,4,['a','b']]

c = copy.copy(a) #浅拷贝

d = copy.deepcopy(a) #深拷贝

print(c)
print(d)
print('-'*20)

a[4][0] = 'x'

print(c)
print(d)
hexianling.png

总结

  • a[4][0] = 'x' 将深层对象的 a元素替换成x ,如果使用浅拷贝(copy) 会将a的值改成x
  • 如果深拷贝(deepcopy) 是不会将改变的值作为输出,它拷贝的是深层的原来元素[a,b]
  • 所以深拷贝的话跟修改后的值无影响,deepcopy使用的还是原来的值
  • copy只复制深层对象的引用,而deepcopy会复制深层对象本身

相关文章

网友评论

    本文标题:Python基础(42) - 浅拷贝和深拷贝

    本文链接:https://www.haomeiwen.com/subject/mdbvjhtx.html