关键字: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中列表和数组的赋值 中 ,浅拷贝和深拷贝的实例讲解 浅 引⽤: 列表赋值: 1234567>>> a = [1, 2, 3] >>> b = a >>> print b [1, 2, 3] >>> a[0] = 0 >>> print b [0, 2, 3] 解释:[1, 2, 3]被视作⼀个对象...
在Python编程语言中,深拷贝和浅拷贝是两种不同的复制对象的方法,它们涉及到对象内存的管理和数据结构的复制。这两个概念对于理解和处理复杂的对象结构至关重要。 **浅拷贝**: 浅拷贝(Shallow Copy)是创建一个...
Python中的深拷贝和浅拷贝是编程时处理对象复制的关键概念,特别是在处理复杂数据结构时。它们决定了拷贝操作的“深度”,即创建新对象的程度。本文将深入探讨这两种拷贝的区别,以及如何在Python中正确使用它们。 ...
与浅拷贝不同的是,深拷贝会递归地复制原列表中的所有对象。也就是说,它会创建一个新的列表,并且复制原列表中包含的所有子列表,即使列表结构非常复杂,深拷贝也能保证复制出的列表与原始列表在内存中完全独立。在...
在Python中,浅拷贝(shallow copy)和深拷贝(deep copy)是用于创建对象副本的两种常见方式。它们可以应用于不同类型的对象,如列表、字典、集合等。下面是对浅拷贝和深拷贝的描述: 浅拷贝:浅拷贝是创建一个新...
在Python编程语言中,"copy"模块提供了对对象复制的功能,包括浅拷贝(shallow copy)和深拷贝(deep copy)。这两种拷贝方式在处理复杂数据结构时尤为重要,因为它们之间的区别会影响到拷贝的对象及其引用。让我们...
在Python中赋值拷贝、浅拷贝与深拷贝的区别 在python中有的三种对于对象的赋值方式,赋值、深浅拷贝,那么他们有什么样的不同点。下面我们就来聊聊。—–仅属于个人观点 一、赋值 说实在的,在python中,对象的赋值...
本文实例讲述了Python深拷贝与浅拷贝用法。分享给大家供大家参考,具体如下: 1、对象的赋值 对象的赋值实际上是对象之间的引用:当创建一个对象,然后将这个对象赋值给另外一个变量的时候,python并没有拷贝这个...
3. **Python深拷贝** 深拷贝是通过`copy.deepcopy()`函数完成的,它会创建一个全新的对象,并递归地复制原对象及其所有子对象。这意味着无论对原对象还是深拷贝的对象进行修改,都不会相互影响。深拷贝的对象与原...
本文实例讲述了Python中字典的浅拷贝与深拷贝用法。分享给大家供大家参考,具体如下: 最近发现的一个很值得记录的东西就是python字典的浅拷贝问题 首先,明确一下什么是浅拷贝,什么是深拷贝: 简单的来说就是,在...
变量-引用-对象(可变对象,不可变对象)-切片-拷贝(浅拷贝,深拷贝) 【变量-对象-引用】 在Python中一切都是对象,比如说:3, 3.14, ‘Hello’, [1,2,3,4],{‘a’:1}…… 甚至连type其本身都是对象,type对象 Python...
python 直接赋值、浅拷贝与深拷贝.ipynb
本文实例讲述了Python浅拷贝与深拷贝用法。分享给大家供大家参考。具体分析如下: >>> person=['name',['savings',100]] >>> hubby=person[:] >>> wifey=list(person) >>> [id(x) for x in person,hubby,wifey] ...
在计算机编程领域中,深拷贝(Deep Copy)与浅拷贝(Shallow Copy)是两种常见的对象复制方法。这两种方法在处理复杂数据结构(如数组、列表等)时有着本质的不同。 **深拷贝**: - **定义**:深拷贝是指在进行对象...
在Python编程语言中,了解如何正确处理对象的拷贝至关重要,特别是浅拷贝和深拷贝的概念。浅拷贝和深拷贝主要涉及到列表、元组等可变对象的复制,以及这些对象内部包含的不可变和可变对象的情况。 浅拷贝(Shallow ...
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
在列表复制这个问题,看似简单的复制却有着许多的学问,尤其是对新手来说,理所当然的事情却并不如意,比如列表的赋值、复制、浅拷贝、深拷贝等绕口的名词到底有什么区别和作用呢? 列表赋值 # 定义一个新列表 l1 ...