首页后端开发Pythonpython中的copy和deepcopy函数使用有啥不同?

python中的copy和deepcopy函数使用有啥不同?

时间2024-03-23 22:44:03发布访客分类Python浏览350
导读:这篇文章给大家分享的是python中的copy( 和deepcopy( 函数的区别,从函数本身可以看出是和复制相关的函数,那么两者究竟区别在哪呢?文中示例对比,介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。 前言: 在处理列表和...

这篇文章给大家分享的是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()是产生一个新的引用,这样spamcheese

是两个不同的引用所以在对spam列表操作时不会对cheese列表产生影响。

现在大家对于python中的copy()和deepcopy()函数的区别应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多Python函数的内容,大家可以关注网络其它相关文章。

文本转载自脚本之家

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: python中的copy和deepcopy函数使用有啥不同?
本文地址: https://pptw.com/jishu/651647.html
怎么去掉字符串前后字符,php用什么方法实现 python中如何取整数?一文教你四个方法

游客 回复需填写必要信息