zoukankan      html  css  js  c++  java
  • Python基础:深浅拷贝

    对于数字、字符串深浅拷贝:

    import copy
    num = 0
    copy_num = copy.copy(num)
    print("These are normal copy").center(60,'*')
    print(num,id(num))
    print(copy_num,id(copy_num))
    print("These are deep copy").center(60,'*')
    deep_copy_num = copy.deepcopy(num)
    print(num,id(num))
    print(deep_copy_num,id(deep_copy_num))
    *******************These are normal copy********************
    (0, 3910788)	#原num id
    (0, 3910788)	#浅拷贝 id
    ********************These are deep copy*********************
    (0, 3910788)	#原num id
    (0, 3910788)	#深拷贝 id
    

    对于字典、元组、列表深浅拷贝:

    import copy
    dic = {
         "CPU":[80,],
         "IO":[80,],
         "Disk":[70,],
         "Memory":[70,],
     }
    
    copy_dic = copy.copy(dic)
    copy_dic["CPU"][0]=30
    print("These are normal copy").center(60,'*')
    print(dic,id(dic))
    print(copy_dic,id(copy_dic))
    print("These are deep copy").center(60,'*')
    deepcopy_dic = copy.deepcopy(dic)
    deepcopy_dic["CPU"][0]=40
    print(dic,id(dic))
    print(deepcopy_dic,id(deepcopy_dic))
    *******************These are normal copy********************
    ({'Disk': [70], 'CPU': [30], 'IO': [80], 'Memory': [70]}, 39905584)    #原dic id
    ({'Disk': [70], 'CPU': [30], 'IO': [80], 'Memory': [70]}, 39906736)    #浅拷贝 id
    ********************These are deep copy*********************
    ({'Disk': [70], 'CPU': [30], 'IO': [80], 'Memory': [70]}, 39905584)    #原dic id
    ({'Disk': [70], 'CPU': [40], 'IO': [80], 'Memory': [70]}, 39907168)    #深拷贝 id

      由以上可以看出对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。

      对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

      赋值,只是创建一个变量,该变量指向原来内存地址。

  • 相关阅读:
    面试题
    iOS 对overflow:scroll使用
    iOS微信页面 长按图片出现【存储图像】和【拷贝】不出现【发送朋友】【保存图片】
    cookie设置和读取以及获取超链接参数
    学习资源链接
    gulp中文乱码问题
    原生ajax基础知识笔记
    Visual Studio Code 插件推荐
    前端开发中一些容易混淆的概念汇总
    jq中的类样式操作与html5中的类样式操作的对比
  • 原文地址:https://www.cnblogs.com/stefan-liu/p/5173531.html
Copyright © 2011-2022 走看看