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

    一、浅拷贝

    定义:浅拷贝只是对另外一个变量的内存地址的拷贝,这两个变量指向同一个内存地址的变量值。

    浅拷贝的特点:

    • 公用一个值;
    • 这两个变量的内存地址一样;
    • 对其中一个变量的值改变,另外一个变量的值也会改变;
    >>> a=[11,22,33]
    >>> b=a
    >>> id(a)
    40488632
    >>> id(b)
    40488632
    >>> a is b
    True
    >>> a.append(44)
    >>> a
    [11, 22, 33, 44]
    >>> b
    [11, 22, 33, 44]
    >>>

    二、深拷贝:

    定义:一个变量对另外一个变量的值拷贝。

    深拷贝的特点:

    • 两个变量的内存地址不同;
    • 两个变量各有自己的值,且互不影响;
    • 对其任意一个变量的值的改变不会影响另外一个;
    >>> import copy
    >>> a=[11,22,33]
    >>> b=copy.deepcopy(a)
    >>> a
    [11, 22, 33]
    >>> b
    [11, 22, 33]
    >>> id(a)
    40489528
    >>> id(b)
    40505392
    >>> a.append(44)
    >>> a
    [11, 22, 33, 44]
    >>> b
    [11, 22, 33]
    >>>
  • 相关阅读:
    使用lambda的精简写法
    lambda实现集合遍历 排序
    stream流 list转map
    stream.min
    lambda实现线程调用
    stream.allMatch
    stream.reduce
    stream流 of
    Stream流 list转set
    SQL Server 游标的简单介绍 转载
  • 原文地址:https://www.cnblogs.com/HandsUp/p/13613460.html
Copyright © 2011-2022 走看看