zoukankan      html  css  js  c++  java
  • python3-day3(深浅copy)

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

      import copy
      n1 = 123
      print(id(n1))
      n2 = n1
      print(id(n2))
      n2 = copy.copy(n1)
      print(id(n2))
      n3 = copy.deepcopy(n1)
      print(id(n3))

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

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

      n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}
      n2 = n1

    4.浅拷贝,在内存中只额外创建第一层数据

      n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}

      n3= copy.copy(n1)

    5.深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)

      n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}
      n4 = copy.deepcopy(n1)

    6.example:

    dic={

        "cpu":[80,],
    "mem":[80,],
    "disk":[80,]
    }
    print("before:",dic)
    new_dic=copy.deepcopy(dic)
    new_dic['cpu'][0]=50
    print(dic)
    print(new_dic)
  • 相关阅读:
    [NOI2003][bzoj1507] 文本编辑器 editor [splay]
    GDKOI 游记
    [填坑完毕] 寒假作业计划
    省选算法学习-数据结构-splay
    NOIP2017游记
    真·总结
    赛前
    十一黄(xun)金(lian)周感想
    9.17 模拟赛
    9.14 模拟赛
  • 原文地址:https://www.cnblogs.com/weibiao/p/5185731.html
Copyright © 2011-2022 走看看