+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-04(9)

2020-05(20)

2020-06(43)

2020-07(32)

2020-08(34)

Python基础教程:copy()和deepcopy()

发布于2021-02-28 19:31     阅读(801)     评论(0)     点赞(4)     收藏(2)


0

1

2

3

4

在处理列表和字典时,尽管传递引用常常是最方便的方法,但如果函数修改了传入的列表或字典,你可能不希望这些变动影响原来的列表或字典。要做到这一点,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列表产生影响。

原文链接:https://www.cnblogs.com/python960410445/p/14459645.html

0

1

2

3

4

5

6

7

8

9



所属网站分类: 技术文章 > 博客

作者:232hdsjdh

链接: https://www.pythonheidong.com/blog/article/864413/740390cae8c479a49425/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

4 0
收藏该文
已收藏

评论内容:(最多支持255个字符)