PythonStudy1——Python 值拷贝 浅拷贝 深拷贝

Posted 挺锅锅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PythonStudy1——Python 值拷贝 浅拷贝 深拷贝相关的知识,希望对你有一定的参考价值。

拷贝:对值进行复制的过程

  # 值拷贝:应用场景最多
  ls = [1, \'abc\', [10]]


  ls1 = ls # ls1直接将ls中存放的地址拿过来
  # ls内部的值发生任何变化,ls1都会随之变化


  ls2 = ls.copy() # 新开辟列表空间,但列表中的地址都是直接从ls列表中拿来
  # ls内部的可变类型值发生改变,ls2会随之变化


  ls3 = deepcopy(ls) # 新开辟列表空间,ls列表中的不可变类型的地址直接拿过来,但是可变类型的地址一定重新开辟空间
  # ls内部的所有类型的值发生改变,ls3都不会随之变化


ls1 = [300000000000000000000000000000000, 1, 2, [10, 20]]
值拷贝
ls2 = ls1
print(id(ls1), id(ls2))
ls1[0] = 30
print(ls1, ls2)
浅拷贝
ls3 = ls1.copy()
print(id(ls1), id(ls3))
ls1[0] = 30
print(ls1, ls3)
ls1[3][0] = 100
print(ls1, ls3)
del ls1[1]
print(ls1, ls1[1])

print(ls3, ls3[1])
深拷贝
from copy import deepcopy
ls4 = deepcopy(ls1)
print(ls1, ls4)
print(id(ls1), id(ls4))
print(">>>>>>>>>>>>", id(ls1[0]), id(ls4[0]))
print(id(ls1[-1]), id(ls4[-1]))
ls1[0] = 30
ls1[-1][0] = 100
print(ls1, ls4)

 

 参考链接:https://www.cnblogs.com/xueli/p/4952063.html



以上是关于PythonStudy1——Python 值拷贝 浅拷贝 深拷贝的主要内容,如果未能解决你的问题,请参考以下文章

Python3 深拷贝与浅拷贝总结

python变量存储和深浅拷贝

Python中的赋值(复制)浅拷贝与深拷贝

python深拷贝与浅拷贝

Python中的深拷贝和浅拷贝

python中的深拷贝与浅拷贝