zoukankan      html  css  js  c++  java
  • Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

    转自:http://www.cnblogs.com/zxlovenet/p/4575228.html 

    首先说一下deepcopy,所谓的深度复制,在这里我理解的是完全复制然后变成一个新的对象,复制的对象和被复制的对象没有任何关系,彼此之间无论怎么改变都相互不影响。

    然后说一下copy,在这里我分为两类来说,一种是字典数据类型的copy函数,一种是copy包的copy函数。

    一、字典数据类型的copy函数,当简单的值替换的时候,原始字典和复制过来的字典之间互不影响,但是当添加,删除等修改操作的时候,两者之间会相互影响。

     
    1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
    2. copy.deepcopy 深拷贝 拷贝对象及其子对象
    一个很好的例子:
    # -*-coding:utf-8 -*-
    import copy
    = [1, 2, 3, 4, ['a', 'b']] #原始对象
     
    = a #赋值,传对象的引用
    = copy.copy(a) #对象拷贝,浅拷贝
    = copy.deepcopy(a) #对象拷贝,深拷贝
     
    a.append(5) #修改对象a
    a[4].append('c') #修改对象a中的['a', 'b']数组对象
     
    print 'a = ', a
    print 'b = ', b
    print 'c = ', c
    print 'd = ', d
    输出结果:
    a =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    b =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    c =  [1, 2, 3, 4, ['a', 'b', 'c']]
    d =  [1, 2, 3, 4, ['a', 'b']]

     

  • 相关阅读:
    Windows CA 证书服务器
    IE7的web标准之道
    mysql 密码重置
    IIS 与 Apache共存
    php 正则表达式
    sql 记录
    [ Python ] 迭代对象、迭代器、生成器
    [ Python ] 文件的读写操作
    [ Python ] 匿名函数和高阶函数
    [ Python ] set集合及函数的使用
  • 原文地址:https://www.cnblogs.com/yycc/p/7346395.html
Copyright © 2011-2022 走看看