zoukankan      html  css  js  c++  java
  • python 复制 浅copy 深copy 的区别

    1.浅copy:   外层添加元素时, 浅拷贝c不会随原列表a变化而变化;内层list添加元素时,浅拷贝c才会变化。
    2.深copy:   无论原列表a如何变化,深拷贝d都保持不变。
    3.赋值:    赋值对象随着原列表一起变化

       深拷贝:只有一种形式,copy模块中的deepcopy函数。
         和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。
         深拷贝出来的对象是一个全新的对象,不再与原来的对象有任何关联。

    import copy
    a = [1,2,3,4,5,['a','b'],6]
    b = a
    c =copy.copy(a)
    d = copy.deepcopy(a)
    
    a.append(7)
    
    print(a)    #新增一个7
    print(b)    #新增一个7
    print(c)    #浅copy 不变
    print(d)    #深copy不变
    print('~~~~~~')
    a[5].append('c')
    print(a)
    print(b)
    print(c)
    print(d)

    /usr/local/bin/python3.7 "/code/赋值 浅copy 深copy.py"
    [1, 2, 3, 4, 5, ['a', 'b'], 6, 7]
    [1, 2, 3, 4, 5, ['a', 'b'], 6, 7]
    [1, 2, 3, 4, 5, ['a', 'b'], 6]
    [1, 2, 3, 4, 5, ['a', 'b'], 6]
    ~~~~~~
    [1, 2, 3, 4, 5, ['a', 'b', 'c'], 6, 7]
    [1, 2, 3, 4, 5, ['a', 'b', 'c'], 6, 7]
    [1, 2, 3, 4, 5, ['a', 'b', 'c'], 6]
    [1, 2, 3, 4, 5, ['a', 'b'], 6]

    Process finished with exit code 0

  • 相关阅读:
    python += 与=的区别
    django 使用框架下auth.models自带的User进行扩展增加字段
    基于服务器版centos7的Hadoop/spark搭建
    疑难汉字查询网
    中国地情网
    河南省高校社会科学研究信息网
    字由网站
    东方语言学
    北朝墓志地名查询
    子午书简——电子书网站
  • 原文地址:https://www.cnblogs.com/666sss/p/11626042.html
Copyright © 2011-2022 走看看