zoukankan      html  css  js  c++  java
  • Python笔记21-------浅复制和深复制、赋值

    上面图表示浅复制和深复制,针对顶层对象来说,赋值为引用,浅复制和深复制都是复制一个新的对象。

                 针对子对象来说,浅复制为引用、深复制就是复制两个一样的。

    1、赋值

    A= [ 1,2,3, [ 'a','b '] ]

    B=A

    则   id ( A ) = id ( B )【因为A、B同时指向同一个对象】)

    2、浅复制:copy()函数

    copy只是复制了顶层对象,嵌套对象为引用。

    比如: A= [ 1,2,3, [ 'a','b '] ]

        B=A.copy()

    此时A和B的输出是一样的。

        A[1]=100,

        B=[ 1,2,3, [ 'a','b '] ] (【B顶层对象没变】)

        id (A) ≠不等于 id (B)

    此时A和B输出不一样。

        A[3][0]='c'

        B=[ 1,2,3, [ 'c','b '] ] (【B嵌套对象改变】)

        id ( A[3] ) = id (B [3] )

    此时A和B输出一样。

    3、深复制:需要引用copy包中的deepcopy方法。

    深复制就是将顶层对象和子对象全部赋值。

    from copy import deepcopy

    B=deepcopy(A)

    id (B) 不等于 id (A)

    对A中的对象随意修改,B对象不变。

  • 相关阅读:
    pam_cracklib module
    转:ubuntu svn
    fw: subversion+apache config
    转:jenkins 简介
    fw:java 10大必知技术
    FW: Linux 搭建 csvn 服务器。
    转:修改svn 端口号
    转:Ubuntu搭建jenkins
    转:vmware workstation的三种网络连接方式。
    图像处理之直方图均衡
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/8834026.html
Copyright © 2011-2022 走看看