• Python-基础-day4


     深浅copy                         

    1、先看赋值运算

    h1 = [1,2,3,['aihuidi','hhhh']]
    h2 = h1
    h1[0] = 111
    print(h1)
    print(h2)
    #结果:
    # [111, 2, 3, ['aihuidi', 'hhhh']]
    # [111, 2, 3, ['aihuidi', 'hhhh']]
    h1[3][0] = 'file'
    print(h1)
    print(h2)
    #结果:
    # [111, 2, 3, ['file', 'hhhh']]
    # [111, 2, 3, ['file', 'hhhh']]

    ps:对与赋值运算来说,h1和h2指向的是同一个内存地址,所以它们是完全一样的。

    为什么要拷贝?

    1
    当进行修改时,想要保留原来的数据和修改后的数据

    数字字符串 和 集合 在修改时的差异? (深浅拷贝不同的终极原因)

    1
    2
    3
    在修改数据时:
        数字字符串:在内存中新建一份数据
             集合:修改内存中的同一份数据

    对于集合,如何保留其修改前和修改后的数据?

    1
    在内存中拷贝一份

    对于集合,如何拷贝其n层元素同时拷贝?

    1
    深拷贝

    2,浅拷贝copy。

    对于浅copy来说,只是在内存中重新创建了开辟了一个空间存放一个新列表,但是新列表中的元素与原列表中的元素是公用的。

    3,深拷贝deepcopy。

    对于深copy来说,列表是在内存中重新创建的,列表中可变的数据类型是重新创建的,列表中的不可变的数据类型是公用的。

  • 相关阅读:
    二级联动
    ajax的post请求方式
    ajax基本常识及get请求方式
    google-gson库下的gson的基本使用
    org.json库下的json的基本使用
    初步认识session
    JSTL的基本使用
    EL的基本使用
    jsp编译器指令errorPage的用法
    poj 1742(好题,楼天城男人八题,混合背包)
  • 原文地址:https://www.cnblogs.com/aihuidi/p/10445062.html
Copyright © 2020-2023  润新知