Python (深浅拷贝)

   日期:2024-01-17     浏览:43    评论:0    

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 中的 "北京多测师" 都修改为 "天津多测师"

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服