美文网首页
Python拷贝(深拷贝deepcopy与浅拷贝copy) 20

Python拷贝(深拷贝deepcopy与浅拷贝copy) 20

作者: 开子的私家地 | 来源:发表于2018-09-10 17:21 被阅读28次

转自: https://www.cnblogs.com/Richardzhu/p/4723750.html
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。

1、copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
2、copy.deepcopy 深拷贝 拷贝对象及其子对象

个人理解是浅拷贝后,拷贝对象的内部子对象的更改会被体现
深拷贝时,就算拷贝对象之后发生了修改,也不会变化

>>> import copy
>>> a = [1,2,3,4,['a','b']]  #原始对象

>>> b = a  #赋值,传对象的引用

>>> c = copy.copy(a)

>>> d = copy.deepcopy(a)

>>> a.append(5)
>>> 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  #浅层次拷贝,对象不变,但内部子对象会改变 ['a','b']->['a','b','c']
c= [1, 2, 3, 4, ['a', 'b', 'c']]
>>> print 'd=',d  #深层次拷贝,对象之后的修改不影响
d= [1, 2, 3, 4, ['a', 'b']]

相关文章

  • Python浅拷贝与深拷贝

    Python浅拷贝与深拷贝 讨论import copy中copy.copy与copy.deepcopy区别。 根据...

  • 2018-10-10day9函数基础

    1.浅拷贝、深拷贝 copy.copy(对象):浅拷贝copy.deepcopy(对象):深拷贝""" """拷贝...

  • day 9

    浅拷贝和深拷贝 copy.copy(对象):浅拷贝 copy.deepcopy(对象):深拷贝 copy.copy...

  • 2018-10-10函数基础

    深拷贝和浅拷贝 深拷贝 copy.deepcopy(对象)浅拷贝 copy.copy(对象)深拷贝: 将对象对应的...

  • python基础笔记

    浅拷贝与深拷贝 copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。 copy.deepcopy...

  • python 浅拷贝copy和深拷贝deepcopy

    python copy(浅拷贝)和deepcopy(深拷贝) copy:只拷贝最外层数据,不拷贝里面的子层数据,即...

  • day9-函数基础

    一、浅拷贝和深拷贝 import copycopy.copy(对象):浅拷贝copy.deepcopy(对象):深...

  • Day9_基础函数

    一、浅拷贝深拷贝 import copycopy.copy(对象):浅拷贝copy.deepcopy(对象):深拷...

  • -119| python篇 |浅谈拷贝 copy()

    说到copy(), 很自然就要谈到深拷贝 deepcopy() 和 浅拷贝 copy() 深拷贝:拷贝值 和 重新...

  • 浅析浅拷贝和深拷贝

    Python中的copy方法是浅拷贝,deepcopy是深拷贝。浅拷贝指的是,对于基本类型,拷贝时会是真的拷贝一份...

网友评论

      本文标题:Python拷贝(深拷贝deepcopy与浅拷贝copy) 20

      本文链接:https://www.haomeiwen.com/subject/utzsgftx.html