python中如何使用浅拷贝与深拷贝模块
小编给大家分享一下python中如何使用浅拷贝与深拷贝模块,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
成都创新互联,专注为中小企业提供官网建设、营销型网站制作、成都响应式网站建设公司、展示型成都网站建设、成都网站设计等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。
Python中可以使用copy模块进行拷贝
l copy.copy:浅拷贝,只对当前对象进行拷贝,没有对子元素进行拷贝
l copy.deepcopy:深拷贝,对象及其子对象
看一个例子:
import copy p1 = [[1,2],4] p2 = copy.copy(p1) p3 = copy.deepcopy(p1) #先来看地址: print('%x %x %x'%(id(p1),id(p2),id(p3))) #在来看第一个元素地址: print('%x %x %x'%(id(p1[0]),id(p2[0]),id(p3[0]))) #对子列表修改 p1[0][0] = 10 p2[1] = -1 p3[0][1] = 100 print('p1:',p1) print('p2:',p2) print('p3:',p3)
可以看到:
l p1与p2的第一个元素:列表,是一个对象,对其修改会影响p1,p2
l p1,p2与p3的第一个元素不是同一个元素,所以修改对p3不会有影响
l p1,p2,p3中的第二个元素为数字,所以修改任意一个,不会对其他造成影响
问题实质:
l 迭代对象中的元素是否可变(列表,字典等),可变就使用深拷贝,
l 浅拷贝操作:copy.copy,list, dict等
以上是python中如何使用浅拷贝与深拷贝模块的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
网站标题:python中如何使用浅拷贝与深拷贝模块
标题网址:http://ybzwz.com/article/geoggc.html