zoukankan      html  css  js  c++  java
  • python 零散知识点(复制、浅拷贝、深拷贝)

    要搞懂这三个概念,将下面三个程序自己测试一遍就行。

    复制

    a = 1
    b = a
    print(id(a), id(b))
    print(a,b)
    

    140716855894416 140716855894416
    1 1

    浅拷贝

    #只拷贝一层
    jack = ["jack",['age',20]]
    tom = jack[:]    # 切片
    nick = list(jack) # 工厂方法
    print(jack,tom,nick) # 内容相同
    print(id(jack), id(tom),id(nick)) #指向不同的ID了
    
    # 年龄是一个嵌套列表,在第二层 
    # 假如只修改tom的年龄为18
    tom[0] = "tom"
    nick[0] = "nick" # 第一层单独变化
    tom[1][1] = 18
    print(jack,tom,nick)                       # 结果三个的年龄都变了,
    print(id(jack[1]), id(tom[1]),id(nick[1])) # 第二层,ID值相同,说明浅拷贝,存在嵌套的情况,是不能单独修改各自的值得
    

    ['jack', ['age', 20]] ['jack', ['age', 20]] ['jack', ['age', 20]]
    2105435611848 2105436845192 2105469646856
    ['jack', ['age', 18]] ['tom', ['age', 18]] ['nick', ['age', 18]]
    2105435527176 2105435527176 2105435527176

    深拷贝

    #  拷贝了对象的所有元素
    import copy
    jack = ["jack",['age',20]]
    tom  =  copy.deepcopy(jack)
    nick  = copy.deepcopy(jack)
    tom[0] = "tom"
    nick[0] = "nick"    # 第一层单独变化
    tom[1][1] = 18      # 第二层也单独变化
    print(jack,tom ,nick )  
    

    ['jack', ['age', 20]] ['tom', ['age', 18]] ['nick', ['age', 20]]

  • 相关阅读:
    MFC框架程序实现十一
    MFC框架程序实现八
    MFC框架程序实现十二
    在Visual C++中如何利用UDL文件来建立ADO连接
    OnePage收集 HA
    微博跳转的url HA
    淘宝iosapp调用规范 HA
    Excel操作相关 HA
    C#GDI+编程基础 HA
    html5deoms HA
  • 原文地址:https://www.cnblogs.com/sinlearn/p/13060936.html
Copyright © 2011-2022 走看看