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

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

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

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

  • 相关阅读:
    Python MySQL(SQL语句的补充3)
    Python MySQL(pymysql的使用day1)
    Python MySQL(SQL语句的补充2)
    Python MySQL(对外键使用方法的补充)
    Python MySQL(学习SQL语句)
    Python MySQL数据库的基本使用
    关于http响应内容压缩的一点小积累。
    同一账号,后一用户登录,前一个用户则被踢掉
    对序列化的学习。
    MySQL 函数积累
  • 原文地址:https://www.cnblogs.com/stefan-liu/p/5173531.html
Copyright © 2011-2022 走看看