美文网首页
Python中的直接赋值、浅拷贝、深拷贝

Python中的直接赋值、浅拷贝、深拷贝

作者: yuandongx | 来源:发表于2020-04-29 21:43 被阅读0次

先看一段程序

import copy


a = [1, 2, 3]
b = [1, 2, 3, a]        # [1, 2, 3, [1, 2, 3]]

x = b                   # 直接赋值
y = b.copy()            # 浅拷贝
z = copy.deepcopy(b)    # 深拷贝

# 先对b做直接修改
b.append(111)
print("x: %s" % x, "y: %s" % y, "z: %s" % z, sep="\n")
# x: [1, 2, 3, [1, 2, 3], 111]
# y: [1, 2, 3, [1, 2, 3]]
# z: [1, 2, 3, [1, 2, 3]]

# 再对b内的子对象a做修改
a.append(125)
print("x: %s" % x, "y: %s" % y, "z: %s" % z, sep="\n")
# x: [1, 2, 3, [1, 2, 3, 125], 111]
# y: [1, 2, 3, [1, 2, 3, 125]]
# z: [1, 2, 3, [1, 2, 3]]

直接赋值

在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用,实际上指向的还是同一个对象

浅拷贝

拷贝父对象,但不会拷贝对象内部的子对象,也就是只复制可变对象b本身,内部的可变对象a还指向同一个

深拷贝

会在内存中复制出一个新的对象

相关文章

  • 简介深浅拷贝

    深浅拷贝 python 直接赋值,浅拷贝和深拷贝 直接赋值 其实就是对象的引用 (可以理解成浅拷贝) 浅拷贝: 拷...

  • Python中的引用赋值,深拷贝,浅拷贝

    摘要:Python,引用赋值,深拷贝,浅拷贝 总结一下Python中的变量的引用赋值,深拷贝和浅拷贝,先上结论 赋...

  • Python底层|赋值 浅拷贝 深拷贝

    参考 python中的深拷贝和浅拷贝问题python的复制,深拷贝和浅拷贝的区别 结论 总体来说,赋值只是增加了一...

  • python赋值、浅拷贝和深拷贝

    简介   python中关于对象复制有三种类型:直接赋值、浅拷贝和深拷贝,他们既有联系又有区别。在python中,...

  • Python中的赋值及深浅拷贝

    Python中的赋值及深浅拷贝 赋值 示例 打印 浅拷贝 示例 打印 深拷贝 示例 打印 三层列表演示 示例 打印

  • Python中的直接赋值、浅拷贝、深拷贝

    先看一段程序 直接赋值 在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候...

  • Python中的浅拷贝和深拷贝

    浅拷贝 赋值 和 copy.copy() Python中的浅拷贝分为直接赋值和使用copy模块的copy方法来进行...

  • copy见解

    拷贝就是拷贝,何来深浅之说? Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,...

  • 浅拷贝和深拷贝

    直接赋值 浅拷贝(影子克隆) 深拷贝 应用场景 参考文章

  • 直接赋值,深拷贝,浅拷贝

    a = [1,2,3,4,[1,2]] 直接赋值 直接赋值就是新建了一个对象的引用,两个引用指向同一个对象,比如 ...

网友评论

      本文标题:Python中的直接赋值、浅拷贝、深拷贝

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