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、深拷贝

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

  • 相关阅读:
    AES块加密与解密
    流加密的密文解密
    Linux命令——压缩和解压缩
    Linux之Vim学习
    Linux命令——磁盘管理
    Linux命令——用户和用户组管理
    Linux命令——文件和目录管理
    C++的技术探究
    Debian系统下实现通过wpa_config连接WPA-PSK加密的Wifi连接
    如何在openWRT系统上实现双版本
  • 原文地址:https://www.cnblogs.com/tandonghao/p/9155693.html
Copyright © 2011-2022 走看看