• 深拷贝与浅拷贝



    # ################ 第一种 #########################

    # '''==与is
    # ==:判断值是否相等
    # is:判断内存地址是否相同
    # # pycharm 解释器 作了优化所以看不出
    # '''
    # 小整数对象:[-5,256]
    # 预置在内存中的数据,引用小整数的变量的地址都是一样的,说明引用的是同一片地址
    # '''
    #
    # # 前提是 列表中要有嵌套【至少2层列表】
    # # 其他语言 java c++ ;【0,1,2,3,4,5,【6,7,8】】浅拷贝是只拷贝值 不开辟新的内存地址,也就是说:拷贝的新列表,内部元素的值还是指向原来列表元素值的值。
    深拷贝才开辟新的内存地址,python中 深浅拷贝 都 开辟 新的内存地址

    其他语言 浅拷贝
    其他语言 深拷贝

     
    # python中
    # #浅拷贝   值一样  地址不一样,在内存中重新开辟了一个空间,生成新的内存空间,再赋值
    # # 只拷贝了元素的引用,

    比如:一个二维列表 list=【1,2,3,4,【5,6,7】】
    内存分析:变量被创建,是一个列表,在内存中开辟了一个内存空间,列表list有一个总地址,无论内部元素怎么变,总地址都不会变。
    列表内的内部元素,其实存放的内存地址即:值的所对应的内存地址。内存地址指向值,值对应内存地址。

    浅拷贝

    深拷贝

    # ################ 第二种#########################
    # 浅拷贝:只拷贝第一层。
    # 深拷贝:拷贝嵌套层次中的所有可变类型。
    # ------ 特殊情况 tuple string


    前提:浅拷贝只拷贝第一层,深拷贝内外层都拷贝
    可变类型,深浅拷贝都一样,内存地址都一样,都指向相同的数值
    不可变类型,深浅拷贝都一样,都开辟新的内存空间,地址不一样

    
    
  • 相关阅读:
    Java异常处理
    冒泡排序法
    21个项目-MNIST机器学习入门
    Hadoop集群搭建中ssh免密登录
    利用奇异值分解简化数据
    数据集中空值替换成对应特征的平均值
    PCA降维处理
    使用FP-growth算法高效发现频繁项集
    原生js---ajax---post方法传数据
    原生js---ajax---get方法传数据
  • 原文地址:https://www.cnblogs.com/yx12138/p/10655782.html
Copyright © 2020-2023  润新知