`
dragonlin06
  • 浏览: 18887 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

1.python 中的拷贝:Copy and deepCopy

阅读更多
  浅度拷贝和深度拷贝
第一个是象序列的分片操作[:] 或着是字典的copy方法.
第二个是深度嵌套结构的象类和实例的deepcopy
>>> import copy
>>> listOne=[1,2,3,3]
>>> li = listOne
>>> li
[1, 2, 3, 3]
>>> listOne.append(32)
>>> li
[1, 2, 3, 3, 32]
>>> li=listOne[:]
>>> li
[1, 2, 3, 3, 32]
>>> listOne.append(123)
>>> li
[1, 2, 3, 3, 32]
>>> listOne
[1, 2, 3, 3, 32, 123]
>>> listOne=[{"name":"Willie","city":"Providence,RI"},1,"tomato",3.0]
>>> listTwo = listOne[:]
>>> listTwo
[{'city': 'Providence,RI', 'name': 'Willie'}, 1, 'tomato', 3.0]
>>> listThree = copy.deepcopy(listOne)
>>> listThree
[{'city': 'Providence,RI', 'name': 'Willie'}, 1, 'tomato', 3.0]
>>> listOne.append('kid')
>>> listOne[0]["city"]='San Francisco,CA'
>>> print listOne,listTwo,listThree
[{'city': 'San Francisco,CA', 'name': 'Willie'}, 1, 'tomato', 3.0, 'kid'] [{'city': 'San Francisco,CA', 'name': 'Willie'}, 1, 'tomato', 3.0] [{'city': 'Providence,RI', 'name': 'Willie'}, 1, 'tomato', 3.0]
分享到:
评论

相关推荐

    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中浅拷贝copy与深拷贝deepcopy的简单理解

    以下是个人对Python深浅拷贝的通俗解释,易于绕开复杂的Python数据结构存储来进行理解! 高级语言中变量是对内存及其地址的抽象,Python的一切变量都是对象。 变量的存储采用了引用语义的方式,存储的只是一个变量...

    对于Python深浅拷贝的理解

    通过调用copy包里的deepcopy方法来深拷贝,其实就是在内存区在分配保存了和a相同的数据,用c来指向它,和a的内存地址不同。怎么验证就是我说的这种情况的呢?用下图来说明吧: 可以看出向a 添加一个元素,通过浅...

    python-拷贝构造函数.docx

    python 拷贝构造函数 Python拷贝构造函数是一种非常有用的函数,它可以帮助我们在创建对象时,将一个已有的对象的值复制到新的对象中。这个函数可以帮助我们避免重复编写代码,提高代码的复用性和可维护性。 在...

    Python直接赋值及深浅拷贝原理详解

    深拷贝(deepcopy):copy模块的deepcopy方法,完全拷贝父对象及其子对象 解释 b = a: 赋值引用,a和b都指向同一个对象 b = a.copy(): 浅拷贝,a和b都是一个独立的对象,但它们的子对象是指向统一对象(是引用)...

    PYTHON学习教程-Python基础学习

    PYTHON学习教程-Python基础学习 序列相关的函数: len(x) max(x) min(x) sum(x) any(x) all(x) 列表的方法: L.append(x) L.insert(index, value) L.clear() L.count(v) L.copy() L.remove(v) L.pop...

    python 直接赋值和copy的区别详解

    深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 例子: dict1 = {'user':'runoob','num':[1,2,3]} dict2 = dict1 # 浅拷贝: 引用对象 dict3 = dict1.copy() # 深拷贝:深拷贝父对象...

    浅谈python中copy和deepcopy中的区别

    在下是个编程爱好者,最近将魔爪伸向了Python编程。。。。。遇到copy和deepcopy感到很困惑,现在针对这两个方法进行区分,一种是浅复制(copy),一种是深度复制(deepcopy)。 首先说一下deepcopy,所谓的深度复制...

    02-Python基础第一部分.zip

    # 01_deepcopy.py # 此程序示意 深拷贝 import copy # 导入copy模块 L = [3.1, 3.2] L1 = [1, 2, L] L2 = copy.deepcopy(L1) # 深拷贝 print(L1) # [1, 2, [3.1, 3.2]] print(L2) # [1, 2, [3.1, 3.2]] L2[2][0] =...

    Python直接赋值、浅拷贝与深度拷贝实例分析

    深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 字典浅拷贝实例 实例 >>>a = {1: [1,2,3]} >>> b = a.copy() >>> a, b ({1: [1, 2, 3]}, {1: [1, 2, 3]}) >>> a[1].append(4) >>> a...

    python读取和保存图片5种方法对比

    python中对象之间的赋值是按引用传递的,如果需要拷贝对象,需要用到标准库中的copy模块 方法一:利用 PIL 中的 Image 函数 这个函数读取出来不是 array 格式,这时候需要用 np.asarray(im) 或者 np.array()函数 ...

    最新最新Python面试题及答案.docx

    最新最新Python面试题及答案全文共6页,当前为第1页...3,copy模块的copy()函数} 深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数} 2、Pyth

    学习Python一年,这次终于弄懂了浅拷贝和深拷贝

    官方文档:copy主题 ... x = copy.deepcopy(y) # 深拷贝我来了 那浅拷贝和深拷贝有什么区别呢,你能给我讲讲吗? 从引用vs.拷贝说起 首先,我们要弄清楚什么是对象引用与对象拷贝(复制)。 对象引用 Python中

    浅述python中深浅拷贝原理

    前言 在c++中参数传递有两种形式:值传递和引用传递。...a3 = copy.deepcopy(a) # look addr print("==========number=======") print(id(a)) print(id(a1)) print(id(a2)) print(id(a3)) s = '1234

    python基础2day01.txt

    copy.deepcopy L.copy() L2 = L 字符串方法: S.split(sep=None) S.join(序列) 列表推导式 [表达式 for 变量 in 可迭代对象 if 真值表达式] day01笔记: 元组 tuple 元组是不可改变的序列,同list一样,...

    百度地图毕业设计源码-python_knowledge:包含基础篇、进阶篇、练习篇、爬虫篇、正则篇、Flask篇、Django篇。持续迭代中

    在Python中,我们使用函数deepcopy()执行深拷贝,导入模块copy,如下所示: >>> import copy >>> b=copy.deepcopy(a) 而浅拷贝则是将一个对象的引用拷贝到另一个对象上,所以如果我们在拷贝中改动,会影响到原对象。...

    Python 赋值,浅拷贝,深拷贝

    深拷贝(deepcopy): copy模块的deepcopy方法,完全拷贝了父对象及其子对象。 1 基础概念 在Python里,一切皆对象,完全的面向对象。 1、Python为动态解释性语言,在赋值操作时,并不需要像静态编译类型语言C++或Java...

    Python字典深浅拷贝与循环方式方法详解

    对于列表、元组和字典而言,进行赋值(=)、浅拷贝(copy)、深拷贝(deepcopy)而言,其内存地址是变化不通的。 赋值(=) 赋值只是创建一个变量,该变量指向原来的内存地址 >>> name1 = ['a','b',['m','n'],'c'] >>> ...

    举例区分Python中的浅复制与深复制

    copy模块用于对象的拷贝操作。该模块非常简单,只提供了两个主要的方法: copy.copy 与 copy.deepcopy ,分别表示浅复制与深复制。什么是浅复制,什么是深复制,网上有一卡车一卡车的资料,这里不作详细介绍。复制...

Global site tag (gtag.js) - Google Analytics