Python 中的 copy()和deepcopy()
作者:小小程序员ol
这篇文章主要介绍了Python 中的 copy()和deepcopy(),下面详细介绍该内容并附上详细代码,需要的朋友可以参考一下文章的具体内容,希望对你有所帮助
前言:
在处理列表和字典时,尽管传递引用常常是最方便的方法,但如果函数修改了传入的列表或字典,可能不希望这些变动影响原来的列表或字典。要做到这一点,Python
提供了名为copy
的模块,其中包含copy()
和deepcopy()
函数。
第一个函数copy.copy()
,可以用来复制列表或字典这样的可变值,而不是只复制引用。
两者的区别是copy.copy()
是这复制了列表或字典的值,但是引用还是同一个。而copy.deepcopy()
是产生一个新的引用使新的变量和被复制变量引用不同。
看下面的示例代码:
1、copy.copy()
示例代码:
import copy spam = ['A','B','C','D',[1,2,3,4]] cheese = copy.copy(spam) spam[0] = 42 print(spam)
运行结果:
[42,'B','C','D',[1,2,3,4]]
根据结果可以看出,使用copy.copy()
函数时,cheese
是复制了spam
列表引用,对spam
列表操作时,也会对cheese
列表产生影响。这也被称为浅copy
。
2、deepcopy.copy()
示例代码:
#Python学习交流群:778463939 import copy spam = ['A','B','C','D',[1,2,3,4]] cheese = copy.deepcopy(spam)#不同部分 spam[0] = 42 print(spam)
运行结果:
[42,'B','C','D',[1,2,3,4]]
根据结果可以看出,使用deepcopy()
时,对spam
列表操作不会对cheese
列表产生影响,这是因为deepcopy()
是产生一个新的引用,这样spam
和cheese
是两个不同的引用所以在对spam
列表操作时不会对cheese列表产生影响。
到此这篇关于Python 中的 copy()和deepcopy()的文章就介绍到这了,更多相关Python copy()和deepcopy()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- python中浅复制copy与深复制deepcopy
- 图解Python中浅拷贝copy()和深拷贝deepcopy()的区别
- Python copy()与deepcopy()方法之间有什么区别
- python中list列表复制的几种方法(赋值、切片、copy(),deepcopy())
- Python-copy()与deepcopy()区别详解
- Python中浅拷贝copy与深拷贝deepcopy的简单理解
- python中copy()与deepcopy()的区别小结
- 浅谈python中copy和deepcopy中的区别
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- python中copy和deepcopy的使用区别