zoukankan      html  css  js  c++  java
  • python基础理论(三) copy & deepcopy

    模块名:copy

    隶属于:python标准库

    py版本:1.4及以后

    包含函数:copy()和deepcopy()

    用  途:复制现有的对象

    1、copy()--- 浅拷贝

    其中填充原对象的引用,建立list对象的一个浅拷贝副本时,会构造一个新的list,并将原对象的元素追加到这个list。

    deepcopy()--- 深拷贝

    其中填充原对象的浅拷贝副本,对list对象进行深拷贝,会copy原列表中的元素,然后将副本添加到新列表

    2、一句话区别:

    浅拷贝只拷贝父对象,不会拷贝对象内部的子对象;

    深拷贝会同时拷贝父对象及其子对象。

    #导入copy模块
    >>> import copy
    #list a
    >>> a = [1, 2, 3, 4, ['a', 'b']]
    #list b:将a赋值给b(传对象的引用)
    >>> b = a
    #list c:将a浅拷贝给c
    >>> c = copy.copy(a)
    #list d: 将a深拷贝给d
    >>> d = copy.deepcopy(a)
    #对list a追加元素 5
    >>> a.append(5)
    #对list a的子元素a[4]即['a','b']追加'c'
    >>> a[4].append("c")
    
    #操作完之后的list a、b、c、d分别为:
    >>> a
    [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    >>> b
    [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    >>> c
    [1, 2, 3, 4, ['a', 'b', 'c']]
    >>> d
    [1, 2, 3, 4, ['a', 'b']]
    >>> 
    #个人理解:拷贝越深,新产生的对象独立性越强,即受原对象改变的影响越小
  • 相关阅读:
    Kotlin 基础
    ViewPager2
    8086-debug指令
    (四)主控板改IP,升级app,boot,mac
    (三)主控板生级uboot与内核
    (四)linux网络编程
    (七)嵌入式系统异常程序远程定位
    (六)ARM状态寄存器-PSR
    (五)stm32工程代码HardFault异常查错调试方法
    (十)makefile
  • 原文地址:https://www.cnblogs.com/thinbottle/p/3011863.html
Copyright © 2011-2022 走看看