Python 中的 copy()和deepcopy()

 更新时间:2021-11-15 06:06:06   作者:佚名   我要评论(0)

目录1、copy.copy()2、deepcopy.copy()前言:
在处理列表和字典时,尽管传递引用常常是最方便的方法,但如果函数修改了传入的列表或字典,可

前言:

在处理列表和字典时,尽管传递引用常常是最方便的方法,但如果函数修改了传入的列表或字典,可能不希望这些变动影响原来的列表或字典。要做到这一点,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  copy()和deepcopy()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • python中copy()与deepcopy()的区别小结

相关文章

  • Python 中的 copy()和deepcopy()

    Python 中的 copy()和deepcopy()

    目录1、copy.copy()2、deepcopy.copy()前言: 在处理列表和字典时,尽管传递引用常常是最方便的方法,但如果函数修改了传入的列表或字典,可
    2021-11-15
  • 详解OpenMV图像处理的基本方法

    详解OpenMV图像处理的基本方法

    目录一、图像处理基础知识二、OpenMV图像处理的基本方法1. 感光元件相关名词解释2. 图像的基本运算3. 使用图像的统计信息4. 画图5. 寻找色块
    2021-11-15
  • Golang通脉之数据类型详情

    Golang通脉之数据类型详情

    目录1、标识符与关键字1.1 标识符1.2 关键字2、变量2.1 什么是变量2.2 变量类型2.3 变量声明3、常量3.1 iota4、基本数据类型4.1 整型4.2 浮点
    2021-11-15
  • Golang通脉之map详情

    Golang通脉之map详情

    目录1、定义2、基本使用3、判断键是否存在4、map的遍历5、delete()函数删除map元素6、指定顺序遍历map7、map类型的切片8、value为切片类型的
    2021-11-15
  • 教你用Django将前端的数据存入Mysql数据库

    教你用Django将前端的数据存入Mysql数据库

    目录1.在app下的models.py中创建新的模板2.数据迁移(用pycharm自带的Terminal工具即可)3.在app下的views.py中创建新的视图4.前端5.效果1.在
    2021-11-15
  • Python打包exe文件一步步图解明了简单

    Python打包exe文件一步步图解明了简单

    兄弟们,我来了!!! 实在是太忙了,没得时间更新,昨天下午这篇还是上周的草稿,太难了~ 当然,顺便再给它换个图标。 首先把你的代码准备
    2021-11-15
  • 详解go语言中并发安全和锁问题

    详解go语言中并发安全和锁问题

    首先可以先看看这篇文章,对锁有些了解 GO语言并发编程之互斥锁、读写锁详解 Mutex-互斥锁 Mutex 的实现主要借助了 CAS 指令 + 自旋 + 信号量
    2021-11-15
  • python中取整数的几种方法

    python中取整数的几种方法

    目录1、向下取整: int()2、向上取整:ceil()3、四舍五入:round()4、分别取 1、向下取整: int() >>> a = 14.38 >>> int(a) 14 2、向上
    2021-11-15
  • python中if和elif的区别介绍

    python中if和elif的区别介绍

    多个if语句是每次单独判断 比如: 例子一 a = 5 if a < 6: #条件1 print(1) if a < 7: #条件2 print(2) else: prin
    2021-11-15
  • python利用while求100内的整数和方式

    python利用while求100内的整数和方式

    目录1、1到100的和2、1到100内的偶数和3、1到100内的奇数和1、1到100的和 定义2个变量i和sum,初值都为1,i的值每次增加1,取到100后结束程序
    2021-11-15

最新评论