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

Python (深浅拷贝)

时间:2020-05-03 20:18:14      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:style   ima   克隆   deepcopy   width   com   注意   pre   改变   

1、深拷贝  -->  克隆一份,修改拷贝后的内容不对原对象内容产生影响

  • 拷贝后修改序列中元素内容,注意:被修改的元素不能为一个序列中的某个值
a  = [["北京多测师","成都多测师"],"上海多测师","深圳多测师","广州多测师"]
b = a.copy()
b[1] = "天津多测师"
print(a)
print(b)

# 结果如下
[[北京多测师, 成都多测师], 上海多测师, 深圳多测师, 广州多测师]   # 列表 a 中的 "上海多测师" 未修改为 "天津多测师"
[[北京多测师, 成都多测师], 天津多测师, 深圳多测师, 广州多测师]   # 列表 b 中的 "上海多测师" 修改为 "天津多测师"
  • copy 模块中的 deepcopy()
import copy

a  = [["北京多测师","成都多测师"],"上海多测师","深圳多测师","广州多测师"]
b = copy.deepcopy(a)
b[0][0] = "天津多测师"
print(a)
print(b)

# 结果如下
[[北京多测师, 成都多测师], 上海多测师, 深圳多测师, 广州多测师]    # 原列表 a 未发生改变
[[天津多测师, 成都多测师], 上海多测师, 深圳多测师, 广州多测师]    # 列表 b 中的第一个元素中的 "北京多测师" 修改为 "天津多测师"

2、浅拷贝  -->  修改拷贝后的内容原对象内容随之修改

a  = [["北京多测师","成都多测师"],"上海多测师","深圳多测师","广州多测师"]
b = a.copy()
b[0][0] = "天津多测师"
print(a)
print(b)

# 结果如下
[[天津多测师, 成都多测师], 上海多测师, 深圳多测师, 广州多测师]
[[天津多测师, 成都多测师], 上海多测师, 深圳多测师, 广州多测师]   # 列表 a 和 b 中的 "北京多测师" 都修改为 "天津多测师"
  • copy 模块中的 copy()
import copy

a  = [["北京多测师","成都多测师"],"上海多测师","深圳多测师","广州多测师"]
b = copy.copy(a)
b[0][0] = "天津多测师"
print(a)
print(b)

# 结果如下
[[天津多测师, 成都多测师], 上海多测师, 深圳多测师, 广州多测师]
[[天津多测师, 成都多测师], 上海多测师, 深圳多测师, 广州多测师]    # 列表 a 和 b 中的 "北京多测师" 都修改为 "天津多测师"

技术图片

技术图片

 

Python (深浅拷贝)

标签:style   ima   克隆   deepcopy   width   com   注意   pre   改变   

原文地址:https://www.cnblogs.com/ZhengYing0813/p/12823042.html

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