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

    深浅拷贝

    一、数字和字符串

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import copy
    # ######### 数字、字符串 #########
    n1 = 123
    # n1 = "i am alex age 10"
    print(id(n1))
    # ## 赋值 ##
    n2 = n1
    print(id(n2))
    # ## 浅拷贝 ##
    n2 = copy.copy(n1)
    print(id(n2))
      
    # ## 深拷贝 ##
    n3 = copy.deepcopy(n1)
    print(id(n3))

    二、其他基本数据类型

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

    1、赋值

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

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

      

    2、浅拷贝

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

    1
    2
    3
    4
    5
    import copy
      
    n1 = {"k1""wu""k2"123"k3": ["alex"456]}
      
    n3 = copy.copy(n1)

    3、深拷贝

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

    1
    2
    3
    4
    5
    import copy
      
    n1 = {"k1""wu""k2"123"k3": ["alex"456]}
      
    n4 = copy.deepcopy(n1)

  • 相关阅读:
    前端之CSS:属性操作2
    前端之CSS:属性操作1
    前端之CSS:CSS选择器
    前端之HTML:表单操作
    前端之HTML:HTML
    SQLAlchemy的使用(SQLAlchemy 是一种对象关系映射模型(Object Relational Mapper), 简称ORM。)
    IO多路复用
    协程
    线程的那些事儿
    并发编程的那些事儿(四)
  • 原文地址:https://www.cnblogs.com/howhy/p/7436353.html
Copyright © 2011-2022 走看看