博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅copy与深copy
阅读量:6125 次
发布时间:2019-06-21

本文共 978 字,大约阅读时间需要 3 分钟。

浅copy

实现浅copy的几种方式:

1 import copy2 3 name1=['Liyunlong',['alex','Tony'],'Xuliucheng']4 5 name2=copy.copy(name1)6 name2=name1[:]7 name2=name1.copy()

实现深copy的方式:

1 import copy2 3 name1=['Liyunlong',['alex','Tony'],'Xuliucheng']4 5 name2=copy.deepcopy(names) #注意copy.copy()依旧是浅copy

区别:

浅copy:复制列表是只是被复制列表的引用,只copy第一层,第二层copy内存地址

深copy:独立复制一份,复制列表与被复制列表无关

例如:

浅copy之后更改列表第一层和第二层:

1 import copy2 3 name1=['Liyunlong',['alex','Tony'],'Xuliucheng']4 5 name2=copy.copy(name1)6 name1[0]='Zhaogang'7 name2[1][0]='James Tao'8 print(name1)9 print(name2)

浅copy结果:

深copy之后更改列表第一层和第二层:

1 import copy2 3 name1=['Liyunlong',['alex','Tony'],'Xuliucheng']4 5 name2=copy.deepcopy(name1)6 name1[0]='Zhaogang'7 name2[1][0]='James Tao'8 print(name1)9 print(name2)

深copy结果:

 

另外,使用等号复制列表相当于copy了前列表的全部地址:

1 name1=['Liyunlong',['alex','Tony'],'Xuliucheng']2 3 name2=name14 name1[0]='Zhaogang'5 name2[1][0]='James Tao'6 print(name1)7 print(name2)

结果为:

转载于:https://www.cnblogs.com/BIT-taozhen/p/9744510.html

你可能感兴趣的文章
Android扩展 - 拍照篇(Camera)
查看>>
JAVA数组的定义及用法
查看>>
充分利用HTML标签元素 – 简单的xtyle前端框架
查看>>
设计模式(十一):FACADE外观模式 -- 结构型模式
查看>>
iOS xcodebuile 自动编译打包ipa
查看>>
程序员眼中的 SQL Server-执行计划教会我如何创建索引?
查看>>
cmake总结
查看>>
数据加密插件
查看>>
linux后台运行程序
查看>>
win7 vs2012/2013 编译boost 1.55
查看>>
IIS7如何显示详细错误信息
查看>>
Android打包常见错误之Export aborted because fatal lint errors were found
查看>>
Tar打包、压缩与解压缩到指定目录的方法
查看>>
新手如何学习 jQuery?
查看>>
配置spring上下文
查看>>
Python异步IO --- 轻松管理10k+并发连接
查看>>
mysql-python模块编译问题解决
查看>>
Oracle中drop user和drop user cascade的区别
查看>>
【Linux】linux经常使用基本命令
查看>>
HTML模块化:使用HTML5 Boilerplate模板
查看>>