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

    赋值引用,多变量使用同内存。对于可变数据对象,修改其中一个,影响其他。
    浅拷贝,只拷贝数据父对象,不拷贝其中子对象。
    深拷贝,拷贝对象及其子对象。

    赋值引用:(修改,所有多影响

    list1=[1,2,3]

    list2=list1

     

    浅拷贝:(只拷贝第一层,其他的层公共)

    import copy

    list1=[1,2,3]

    list2=copy.copy(list1)

    list3=list[:]

     

    深拷贝:(拷贝所有)(修改的修改,所有多不影响

    import copy

    List1 = [1, 2,3]

    List2=copy.deepcopy(List1)

     

    eg:

    list1=[1,2,3,['a',"b"],6]
    list0=list1
    list0[3][0]="b"
    print(list1)
    print(list0)
    list0[0]="b"
    print(list1)
    print(list0)

    list1=[1,2,3,['a',"b"],6]

    list2=copy.copy(list1)
    list2[3][0]="b"
    print(list1)
    print(list2)
    list2[0]="b"
    print(list1)
    print(list0)

    import copy

    list1=[1,2,3,['a',"b"],6]

    list3=list1[:]
    list3[3][0]="b"
    print(list1)
    print(list3)
    list3[0]="b"
    print(list1)
    print(list0)

    import copy

    list1=[1,2,3,['a',"b"],6]

    list4=copy.deepcopy(list1)
    list4[3][0]="b"
    print(list1)
    print(list4)
    list4[0]="b"
    print(list1)
    print(list0)

    以上代码分别执行下你就明白了!

    对于原理是很复杂的!!!!

     

     

  • 相关阅读:
    springboot设置请求超时
    Dockerfile 中 ENTRYPOINT 与 CMD 的区别
    iptables
    git commit statistics
    query spring mongo limit or skip test
    创建证书
    Linux基本网络配置
    k8s
    iis express添加网站,并启动
    用cmd的方式执行exe程序
  • 原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/5836654.html
Copyright © 2011-2022 走看看