谈谈Python的深浅拷贝?

来源:千锋教育
发布时间:2023-11-06 19:22:18
分享

浅拷贝只是增加了一个指针指向一个存在的地址,

而深拷贝是增加一个指针并且开辟了新的内存,这个增加的指针指向这个新的内存,

采用浅拷贝的情况,释放内存,会释放同一内存,深拷贝就不会出现释放同一内存的错误

一层的情况:

importcopy

#浅拷贝

li1=[1,2,3]

li2=li1.copy()

li1.append(4)

print(li1,li2)#[1,2,3,4][1,2,3]

#深拷贝

li1=[1,2,3]

li2=copy.deepcopy(li1)

li1.append(4)

print(li1,li2)#[1,2,3,4][1,2,3]

多层的情况:

importcopy

#浅拷贝指向共有的地址

li1=[1,2,3,[4,5],6]

li2=li1.copy()

li1[3].append(7)

print(li1,li2)#[1,2,3,[4,5,7],6][1,2,3,[4,5,7],6]

#深拷贝重指向

li1=[1,2,3,[4,5],6]

li2=copy.deepcopy(li1)

li1[3].append(7)

print(li1,li2)#[1,2,3,[4,5,7],6][1,2,3,[4,5],6]

以上内容为大家介绍了谈谈Python的深浅拷贝?希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • Python系统互动 系统互动,主要指Python和操作系统(operatesystem)、文件系统(filesystem)的互动。Python可以实现一个操作系统的许多功能。它能够像bash脚本那样管理操作系统,这也是P
  • 网络功能对于Python的意义 现在,网络功能的强弱很大程度上决定了一个语言的成功与否。从Ruby,JavaScript,php身上都可以感受到这一点。Python的标准库对互联网开发的支持并不充分,这也是Django等基于Pyth
  • Python标准库的学习准备 Python标准库是Python强大的动力所在,我们已经在前文中有所介绍。由于标准库所涉及的应用很广,所以需要学习一定的背景知识。硬件原理这一部份需要了解内存,CPU,磁盘存储以及IO的功能和性能,了
  • Python中的time包 time包基于C语言的库函数(libraryfunctions)。Python的解释器通常是用C编写的,Python的一些函数也会直接调用C语言的库函数。importtimeprint(time.ti
  • Python的动态类型 在我们接触的对象中,有一类特殊的对象,是用于存储数据的。常见的该类对象包括各种数字,字符串,表,词典。在C语言中,我们称这样一些数据结构为变量。而在Python中,这些是对象。对象是储存在内存中的实体
  • Python之推导式 推导式:comprehensions(又称解析式),是Python的一种独有特性,相当于语法糖的存在,推导式是可以从一个数据序列构建另一个新的数据序列的结构体。共有三种推导,在Python2和3中都有