zoukankan      html  css  js  c++  java
  • python模块之copy

    提供浅拷贝和深拷贝两种模式。

     

    =>copy(x):返回x的浅拷贝

    =>deepcopy(x):返回x的深拷贝

     

    浅拷贝和深拷贝:

    浅拷贝复制不变对象,引用可变对象(如列表和字典);

    深拷贝复制可变和不可变对象。

     

    浅拷贝的几种方法:

    (1)、使用切片[:]操作进行拷贝

    (2)、使用工厂函数(如list/dir/set)等进行拷贝

    (3)、copy.copy()

     

    Example:

     

    #深拷贝浅拷贝

    import copy

    person = [1,2,4,['a','b']]

    b = person  #对象的赋值实际上是对象的引用

    c=person[:]

    d=copy.copy(person)

    e=copy.deepcopy(person)

     

    person.append('hello')

    b[3].insert(1,'bbb')

    b.insert(1,'bbb')

    c.insert(1,'ccc')

    c[4].insert(1,'ccc')

    d.insert(1,'ddd')

    e.insert(1,'test')

     

    print('原始数据person: ',person)

    print('赋值b: ',b)

    print('浅拷贝c: ',c)

    print('浅拷贝d: ',d)

    print('深拷贝e: ',e)

    原始数据person:  [1, 'bbb', 2, 4, ['a', 'ccc', 'bbb', 'b'], 'hello']

    赋值b:  [1, 'bbb', 2, 4, ['a', 'ccc', 'bbb', 'b'], 'hello']

    浅拷贝c:  [1, 'ccc', 2, 4, ['a', 'ccc', 'bbb', 'b']]

    浅拷贝d:  [1, 'ddd', 2, 4, ['a', 'ccc', 'bbb', 'b']]

    深拷贝e:  [1, 'test', 2, 4, ['a', 'b']]

  • 相关阅读:
    如何在百度文库里面免费下载东西
    CompareTo
    MySql常用日期函数(转载)
    Oracle之ORDER BY
    Spring之Ioc
    在使用与测绘有关软件中的困难
    HDOJ_1008_Elevator
    HDOJ_1005_Number Sequence
    HDOJ_1004_Let the Balloon Rise
    HDOJ_1003_MaxSum
  • 原文地址:https://www.cnblogs.com/MrFiona/p/5958911.html
Copyright © 2011-2022 走看看