浅拷贝(shallow copy)和深度复制(deep copy)的区别

浅复制和深复制的主要区别在于,浅复制创建一个新对象,然后用原始中找到的子对象的引用填充它,而深复制创建一个新对象,然后用原始中找到的子对象的副本递归填充它。...

浅复制和深复制的主要区别在于,浅复制创建一个新对象,然后用原始中找到的子对象的引用填充它,而深复制创建一个新对象,然后用原始中找到的子对象的副本递归填充它。

在诸如Python之类的编程语言中,我们可以使用=运算符来创建对象的副本。但是,它不会创建对象。它只创建一个共享原始对象引用的新变量。在编程中,可能需要保持原始值不变,只修改新值。在Python中有两种创建副本的方法。这些是浅拷贝和深拷贝。

覆盖的关键领域

1.什么是复制模块-定义,功能2.什么是浅复制-定义,功能3.什么是深复制-定义,功能4.浅复制和深复制的区别-主要区别比较

关键术语

复制模块,深度复制,浅层复制

浅拷贝(shallow copy)和深度复制(deep copy)的区别

什么是复制模块(copy module)?

为了使浅拷贝或深拷贝工作,程序应该由一个拷贝模块组成。程序员可以使用“导入副本”模块。此外,copy()返回对象的浅拷贝,而deepcopy()返回对象的深拷贝。

什么是浅拷贝(shallow copy)?

浅复制是创建新对象的过程,该对象存储原始元素的引用。它不会创建嵌套对象本身的副本。下面是一个例子。

Difference Between Shallow Copy and Deep Copy

Figure 1: Shallow Copy program with python

在上面的程序中,旧的\u列表是一个嵌套列表。然后,使用copy()方法将其复制到新的\u列表中。同样,它创建一个具有相同内容的新对象。因此,当打印旧的\列表和新的\列表时,我们可以在控制台上看到相同的输出。

此外,在第9行中,程序员向中间数组的第一个索引元素追加一个新值。再次打印旧列表和新列表时,我们可以看到旧列表和新列表中的元素都被修改,因为两个列表共享相同嵌套对象的引用。

什么是深度复制(deep copy)?

深度复制是创建新对象的过程,它递归地将原始元素的嵌套对象的副本**到新对象中。换句话说,深度副本能够创建原始对象和相关嵌套对象的独立副本。

Main Difference - Shallow Copy vs Deep Copy

Figure 2: Deep copy program with Python

在上面的程序中,旧的\u列表是一个嵌套列表。然后,使用deepcopy()方法将其复制到新的\u列表中。同样,它创建一个具有相同内容的新对象。因此,当打印旧的\列表和新的\列表时,我们可以在控制台上看到相同的输出。

此外,在第9行中,程序员向中间数组的第一个索引元素追加一个新值。再次打印旧\列表和新\列表时,可以看到只有旧\列表被修改。这是因为它们是分离的对象。

浅拷贝(shallow copy)和深度复制(deep copy)的区别

定义

浅层复制是构造一个新集合对象,然后用对原始集合中的子对象的引用填充它的过程。另一方面,深度副本是一个构造新集合对象的过程,然后用在原始集合中找到的子对象的副本递归地填充它。因此,这是浅拷贝和深拷贝的主要区别。

功能

此外,浅拷贝不会递归,也不会创建子对象本身的拷贝,而深拷贝创建原始对象及其所有子对象的完全独立克隆。

复制过程

浅拷贝和深拷贝的另一个区别是浅拷贝不是递归的,而深拷贝是递归的。

结论

可以在诸如Python之类的编程语言中复制对象。有两种类型的复制称为浅复制和深复制。浅复制和深复制的主要区别在于,浅复制创建一个新对象,然后用原始中找到的子对象的引用填充它,而深复制创建一个新对象,然后用原始中找到的子对象的副本递归填充它。

引用

1.“Python Shallow Copy and Deep Copy.”Python Shallow Copy and Deep Copy(带示例),可在此处获得。2.真正的蟒蛇。”Python对象的浅拷贝与深拷贝。“真实Python,真实Python,2018年12月12日,可在此处获得。 2.真正的蟒蛇。”Python对象的浅拷贝与深拷贝。“真实Python,真实Python,2018年12月12日,

  • 发表于 2021-07-01 23:59
  • 阅读 ( 391 )
  • 分类:IT

你可能感兴趣的文章

复制(copy)和复制(duplicate)的区别

复制vs复制 复制和复制的区别主要在于每个词的含义。“复制”和“复制”两个词常常被混淆为两个意思相同的不同单词。它们的用法也很混乱。但是,可以说它们是两个不同的词,表达了两种不同的意思,因此它们的用法...

  • 发布于 2020-11-04 11:40
  • 阅读 ( 1135 )

学习python?下面是如何复制文件

...hon在计算机上执行一些任务。使用Python将文件从一个目录复制和粘贴到另一个目录是一种有趣的方法。 ...

  • 发布于 2021-03-11 10:45
  • 阅读 ( 337 )

使用rsync备份数据(无需桌面)

...于排除,您应该知道一些重要的事情:它们是相对于您的拷贝源定位的!简单地说,您需要告诉rsync您要排除的文件相对于您选择复制文件的位置。下面是一个例子: ...

  • 发布于 2021-03-16 12:17
  • 阅读 ( 167 )

7款android应用程序,增强文本选择菜单

...复制的功能,可以在其他应用程序(如WhatsApp)中实现多拷贝。有了它,你甚至可以从不同的聊天窗口复制信息并将它们粘贴为一个。 ...

  • 发布于 2021-03-23 18:01
  • 阅读 ( 413 )

复制师可以使用人工智能自动生成内容

...同事的意见。 实时预览:你可以看到你的拷贝在谷歌、Facebook和Instagram上的样子,然后再进行直播。 ...

  • 发布于 2021-03-29 05:00
  • 阅读 ( 297 )

carbon copy cloner os x备份应用程序为mountain lion更新,现在标价39.95美元

...时间机器是一个伟大的备份解决方案,因为它的易用性和深度集成在苹果操作系统中的大多数Mac用户。但是对于高级用户来说,mikebombich的carboncopycloner长期以来一直是一个必不可少的实用工具,它提供了创建当前机器的一点一点...

  • 发布于 2021-04-23 12:27
  • 阅读 ( 137 )

剪切粘贴(cut paste)和复制粘贴(copy paste)的区别

“剪切粘贴”和“复制粘贴”的主要区别在于,“剪切粘贴”将从文档中删除原始内容并将其放置在新位置,而“复制粘贴”将内容**到新位置而不删除原始内容。 当使用诸如msword之类的应用程序时,用户必须执行各种活动,例...

  • 发布于 2021-06-30 17:10
  • 阅读 ( 960 )

切(cut)和复制(copy)的区别

“剪切”和“复制”之间的主要区别在于,“剪切”从原始位置删除选定的数据,“复制”创建原始内容的副本。有不同的方法可以剪切或复制选定的内容。同时按键盘上的control(ctrl)和X键是剪切的快捷键,同时按control(ctrl...

  • 发布于 2021-06-30 17:43
  • 阅读 ( 591 )

复制(copying)和移动(moving)的区别

复制和移动的主要区别在于,复制是在另一个位置复制一个文件或目录,而不影响原始内容,同时移动将原始文件或目录转移到另一个位置。 在使用计算机时,有时需要复制相同的文件或目录。复制是解决方案。它不会影响原...

  • 发布于 2021-06-30 19:38
  • 阅读 ( 435 )

复制构造函数(copy constructor)和赋值运算符(assignment operator)的区别

复制构造函数和赋值运算符的主要区别在于,复制构造函数是一种有助于创建已存在对象的副本而不影响原始对象值的构造函数,而赋值运算符是一种有助于将新值赋给程序中变量的运算符。 构造函数是一种特殊的方法,在创...

  • 发布于 2021-07-01 05:44
  • 阅读 ( 531 )
vttxxvtvx979
vttxxvtvx979

0 篇文章

相关推荐