`

python中的深拷贝与浅拷贝

阅读更多

关键字:copy; deepcopy

参考网址:http://edu.codepub.com/2010/0614/23518.php


copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
copy.deepcopy 深拷贝 拷贝对象及其子对象
示例:
>>> import copy
>>> a=[1,2,3,4,['a','b']]
>>> b=a                     # 传引用。相当于现在b与a指向了同一块内存区域
                            那样的话a的任何修改b将同步
>>> c=copy.copy(a)          # 浅拷贝。相当于c与a现在是两个单独的内存区域
>>> d=copy.deepcopy(a)      # 深拷贝。相当于是完全独立的内存区域
>>> a.append(5)             # 这个是在外层对象即父对象处理会影响到copy浅拷贝
>>> a[4].append('c')        # 这个是内部子对象不会影响.即还是指向一块
>>> print 'a',a
a [1, 2, 3, 4, ['a', 'b', 'c'], 5]
>>> print 'b',b
b [1, 2, 3, 4, ['a', 'b', 'c'], 5]
>>> print 'c',c
c [1, 2, 3, 4, ['a', 'b', 'c']]
>>> print 'd',d
d [1, 2, 3, 4, ['a', 'b']]
>>> 
如果受到拷贝的话,那就是相互独立的了。
copy.copy的话其实是做了浅拷贝的因为是父对象所以:父对象不受影响了是单独的两块区域 。
 
结论:哪个拷贝了哪个就是单独的内存区域。与原始的内存是分开的。你再怎么修改也影响不到我
分享到:
评论

相关推荐

    Python中列表和数组的赋值以及-浅拷贝和深拷贝的实例讲解

    对Python中列表和数组的赋值 中 ,浅拷贝和深拷贝的实例讲解 浅 引⽤: 列表赋值: 1234567>>> a = [1, 2, 3] >>> b = a >>> print b [1, 2, 3] >>> a[0] = 0 >>> print b [0, 2, 3] 解释:[1, 2, 3]被视作⼀个对象...

    Python 深拷贝和浅拷贝详解

    在Python编程语言中,深拷贝和浅拷贝是两种不同的复制对象的方法,它们涉及到对象内存的管理和数据结构的复制。这两个概念对于理解和处理复杂的对象结构至关重要。 **浅拷贝**: 浅拷贝(Shallow Copy)是创建一个...

    python的深拷贝与浅拷贝

    Python中的深拷贝和浅拷贝是编程时处理对象复制的关键概念,特别是在处理复杂数据结构时。它们决定了拷贝操作的“深度”,即创建新对象的程度。本文将深入探讨这两种拷贝的区别,以及如何在Python中正确使用它们。 ...

    深入浅析Python中list的复制及深拷贝与浅拷贝

    与浅拷贝不同的是,深拷贝会递归地复制原列表中的所有对象。也就是说,它会创建一个新的列表,并且复制原列表中包含的所有子列表,即使列表结构非常复杂,深拷贝也能保证复制出的列表与原始列表在内存中完全独立。在...

    python浅拷贝、深拷贝

    在Python中,浅拷贝(shallow copy)和深拷贝(deep copy)是用于创建对象副本的两种常见方式。它们可以应用于不同类型的对象,如列表、字典、集合等。下面是对浅拷贝和深拷贝的描述: 浅拷贝:浅拷贝是创建一个新...

    copy的使用(深拷贝、浅拷贝)

    在Python编程语言中,"copy"模块提供了对对象复制的功能,包括浅拷贝(shallow copy)和深拷贝(deep copy)。这两种拷贝方式在处理复杂数据结构时尤为重要,因为它们之间的区别会影响到拷贝的对象及其引用。让我们...

    Python中赋值拷贝、浅拷贝与深拷贝的区别

    在Python中赋值拷贝、浅拷贝与深拷贝的区别 在python中有的三种对于对象的赋值方式,赋值、深浅拷贝,那么他们有什么样的不同点。下面我们就来聊聊。—–仅属于个人观点 一、赋值 说实在的,在python中,对象的赋值...

    Python深拷贝与浅拷贝用法实例分析

    本文实例讲述了Python深拷贝与浅拷贝用法。分享给大家供大家参考,具体如下: 1、对象的赋值 对象的赋值实际上是对象之间的引用:当创建一个对象,然后将这个对象赋值给另外一个变量的时候,python并没有拷贝这个...

    Python的赋值、深拷贝与浅拷贝的区别详解

    3. **Python深拷贝** 深拷贝是通过`copy.deepcopy()`函数完成的,它会创建一个全新的对象,并递归地复制原对象及其所有子对象。这意味着无论对原对象还是深拷贝的对象进行修改,都不会相互影响。深拷贝的对象与原...

    Python中字典的浅拷贝与深拷贝用法实例分析

    本文实例讲述了Python中字典的浅拷贝与深拷贝用法。分享给大家供大家参考,具体如下: 最近发现的一个很值得记录的东西就是python字典的浅拷贝问题 首先,明确一下什么是浅拷贝,什么是深拷贝: 简单的来说就是,在...

    Python中的深拷贝和浅拷贝详解

    变量-引用-对象(可变对象,不可变对象)-切片-拷贝(浅拷贝,深拷贝) 【变量-对象-引用】 在Python中一切都是对象,比如说:3, 3.14, ‘Hello’, [1,2,3,4],{‘a’:1}…… 甚至连type其本身都是对象,type对象 Python...

    python 直接赋值、浅拷贝与深拷贝.ipynb

    python 直接赋值、浅拷贝与深拷贝.ipynb

    Python浅拷贝与深拷贝用法实例

    本文实例讲述了Python浅拷贝与深拷贝用法。分享给大家供大家参考。具体分析如下: >>> person=['name',['savings',100]] >>> hubby=person[:] >>> wifey=list(person) >>> [id(x) for x in person,hubby,wifey] ...

    深拷贝拷贝的是内容,浅拷贝拷贝的是指针

    在计算机编程领域中,深拷贝(Deep Copy)与浅拷贝(Shallow Copy)是两种常见的对象复制方法。这两种方法在处理复杂数据结构(如数组、列表等)时有着本质的不同。 **深拷贝**: - **定义**:深拷贝是指在进行对象...

    图解:python中的浅拷贝和深拷贝

    在Python编程语言中,了解如何正确处理对象的拷贝至关重要,特别是浅拷贝和深拷贝的概念。浅拷贝和深拷贝主要涉及到列表、元组等可变对象的复制,以及这些对象内部包含的不可变和可变对象的情况。 浅拷贝(Shallow ...

    Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

    import copya = [1, 2, 3, 4, [‘a’, ‘b’]] #原始对象b = a #赋值,传对象的引用c = copy.copy(a) #对象拷贝,浅拷贝d = copy.deepcopy(a) #对象拷贝,深拷贝a.append(5) #修改对象aa[4]....

    Python 112.对象的浅拷贝和深拷贝_内存分析.mp4

    Python 112.对象的浅拷贝和深拷贝_内存分析.mp4

    详解Python列表赋值复制深拷贝及5种浅拷贝

    在列表复制这个问题,看似简单的复制却有着许多的学问,尤其是对新手来说,理所当然的事情却并不如意,比如列表的赋值、复制、浅拷贝、深拷贝等绕口的名词到底有什么区别和作用呢? 列表赋值 # 定义一个新列表 l1 ...

Global site tag (gtag.js) - Google Analytics