zoukankan      html  css  js  c++  java
  • 拷贝

    copy(),

    >>> help(copy)

    import copy

    x = copy.copy(y) # make a shallow copy of y 浅拷贝
    x = copy.deepcopy(y) # make a deep copy of y 深拷贝

    >>> import copy
    >>> a = [1, 2, 3, 4, ['a', 'b', 'c']]
    >>> b = a
    >>> c = copy.copy(a)
    >>> d = copy.deepcopy(a)
    >>> id(a)
    49228776
    >>> id(b)
    49228776
    >>> id(c)
    42855920
    >>> id(d)
    48641608

    发现id都改变了,

    对a列表添加操作看看会不会对新拷贝出来的有影响
    对a列表的子列表添加操作看看会不会对新拷贝出来的有影响

    >>> a.append(5)#操作列表
    >>> a[4].append('d')#操作列表中的子列表
    >>> a
    [1, 2, 3, 4, ['a', 'b', 'c', 'd'], 5]
    >>> b
    [1, 2, 3, 4, ['a', 'b', 'c', 'd'], 5]
    >>> c
    [1, 2, 3, 4, ['a', 'b', 'c', 'd']]
    >>> d
    [1, 2, 3, 4, ['a', 'b', 'c']]

    浅拷贝是指拷贝的只是原对象元素的引用,换句话说,浅拷贝产生的对象本身是新的,但是它的内容不是新的,只是对原对象的一个引用

    深拷贝就是完全复制新建的。

    特别注意Python中的数字,字符串,原子类型没拷贝一说。

    只包含‘原子类型’的元祖也不能深拷贝

  • 相关阅读:
    flexible
    arcgis
    vue 语法糖
    sass 的安装 编译 使用
    nodeJs
    微信小程序
    linux cgroups 简介
    git命令
    sublime笔记
    工程优化学习(进退法、黄金分割法、二次插值法、三次插值法、最速下降法)
  • 原文地址:https://www.cnblogs.com/timp/p/3684258.html
Copyright © 2011-2022 走看看