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

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

时间:2019-04-18 21:59:11      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:targe   log   .com   ima   不可   不可变类   复制   tps   www   

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

  # 值拷贝:应用场景最多
  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 值拷贝 浅拷贝 深拷贝

标签:targe   log   .com   ima   不可   不可变类   复制   tps   www   

原文地址:https://www.cnblogs.com/tingguoguoyo/p/10732487.html

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