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

    深浅拷贝

    ‘copy’和'='的区别:copy会开辟一个新的空间,而‘=’不会。

    浅copy只会copy第一层,再里边的就进行共享了。

    需要记住的是copy之后记住的是内存寻址地址,而浅copy时如果copy中有列表、字典等,记住的内存寻址是这个列表、字典的地址,也就是指向,当修改列表、字典中的东西时,记录的内存寻址没有发生改变,所以就会出现浅copy所描述的这种情况。

    短暂感受:

    # 修改字符串的时候没有发生变化
    s_1 = [[1,2], 'mu', 'linux']
    s_2 = s_1.copy()
    
    s_2[1] = 'wj'
    print(s_1)
    print(s_2)
    
    
    # 修改列表的时候发生了变化,证明s_1和s_2是有联系的
    s_1 = [[1,2], 'mu', 'linux']
    s_2 = s_1.copy()
    
    s_2[0][1] = 3
    print(s_1)
    print(s_2)

    深浅拷贝混合使用:

    import copy
    a = ['mu', 123, [6000,5000]]
    
    b = copy.copy(a)
    b[0] = 'lei'
    b[1] = 456
    b[2][1] -= 2000
    print(a)
    print(b)
    
    c = copy.deepcopy(a)                    # 此处深copy时a[2][1]已经是3000了
    c[0] = 'cao'
    c[1] = 789
    c[2][1] -= 1000
    print(c)
    print(a)
    print(b)
  • 相关阅读:
    Linux性能监测:磁盘IO篇
    Linux性能监测:网络篇
    Linux性能监测:内存篇
    Linux系统和性能监控之CPU篇
    linux 进程和线程讲解
    web-单机时代
    自动化-ELK日志管理
    自动化--zabbix-proxy
    自动化-zabbix(2)
    IOS中的用户安全
  • 原文地址:https://www.cnblogs.com/dmjx/p/7890916.html
Copyright © 2011-2022 走看看