在python之中我们去给一个变量赋值的时候,如果这个值是已经创建出来的一个对象,那么这个时候就会启用一个叫做拷贝的运行机制 。而python之中的拷贝又会分为深拷贝和浅拷贝,下面这篇文章就会来详细的解析一下Python深拷贝和浅拷贝,一起往下看看吧 。
文章插图
一、浅拷贝
拷贝可以简单的理解为复制,也就是将一个对象的内容完全不经任何改变的赋值给另一个变量 。通过代码来看会更加直观,示例如下:
list1 = [1, 2, 3]list2 = list(list1)print(list2)在上面的示例之中两个列表对象内的值都是一样的,其中list2就是由list1所得到的 。但是使用is关键字去对它们进行相同判断时得到的结果就是False,这是因为这两个列表对象保存内容的内存地址是不一样的 。
从这一点就可以得到浅拷贝的实际意义,浅拷贝指的就是将一个对象的内容复制到另一个对象上面,而在这个过程之中被赋值的对象实际上是在内存中重新开辟了一个空间来保存数据,但是里面的内容是对原对象的元素引用 。
【Python深拷贝和浅拷贝如何理解?Python深浅拷贝的区别在哪】二、深拷贝
深拷贝就可以理解为是浅拷贝更加彻底的一种拷贝机制,它同样也是创建新的对象和内存来保存内容 。但是深拷贝是通过递归的方式将拷贝对象中所有内容都复制到新对象之中,重新生成的新对象和原来的拷贝对象没有任何关系,示例如下:
import copylist1 = [[1, 2], (30, 40)]list2 = copy.deepcopy(list1)以上就是关于“Python深拷贝和浅拷贝如何理解?Python深浅拷贝的区别在哪”的全部内容了,希望对你有所帮助 。
推荐阅读
- python怎样进行文件名匹配?python文件名匹配的方法是什么?
- Python怎么用字典格式化字符串?Python格式化字符串如何用字典
- 学习Python到底是培训还是自学合适呢?零基础可以学会Python吗?
- 怎么使用Python库实现队列?实现python队列的方法有哪些?
- 什么是条件变量?Python中条件变量如何使用?
- python如何统计输入字符串中字符的个数?python统计字符的个数代码
- 如何在python中设置随机种子?numpy库中的随机数种子如何产生?
- 如何用Python代码实现词云?python实现词云的方法有哪些?
- 如何实现python中的链表反转?Python实现链表反转的方法是什么?
- 如何安装python框架?windows安装python框架的方法