zoukankan      html  css  js  c++  java
  • python——深浅拷贝

    一、字符串和数字

      1、存储方式:

        str:一次性创建,不能被修改,只要修改,就是再创建一个字符串

        list:是链表的形式,它存储了上一个元素和下一个元素的位置

      2、深浅拷贝和赋值

        对于数字和字符串,赋值、浅拷贝和深拷贝无意义,因为它们都指向同一个地址

    >>> n1 = 55555
    >>> n2 = n1
    >>> id(n1),id(n2)                       #id(对象)  输出对象值存储的地址
    (2301027787888, 2301027787888)
    >>> import copy                #导入copy模块
    >>> n3 = copy.copy(n1)           #浅拷贝
    >>> id(n3)
    2301027787888
    >>> n4 = copy.deepcopy(n1)        #深拷贝
    >>> id(n4)
    2301027787888
    

        结论:拷贝和赋值都指向同一个位置

    二、列表、字典和元组

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

      1、赋值

        赋值只是创建了一个变量,新的变量还是指向原来的内存地址

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

      

      2、浅拷贝

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

      3、深拷贝

        深拷贝:在内存中将所有数据再创建一遍(除了最底层的数字和字符串)

  • 相关阅读:
    科学美国人(Scientific American)部分段落小译
    Matlab安装使用libsvm
    【转】Matlab中特殊符号的写法
    计算机视觉资源
    AdaBoost
    AdaBoost人脸检测原理
    NLP常用开源/免费工具(转)
    搜索背后的奥秘——浅谈语义主题计算
    求数组当中子数组最大和
    求二叉树中两个节点的最低父节点
  • 原文地址:https://www.cnblogs.com/tandonghao/p/9155693.html
Copyright © 2011-2022 走看看