【python】copy()

先上结论:


我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体存在即使改变原有的对象,也不会改变复制之后的对象


浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据打上一个新标签,所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。相当于复制的地址,指向的新数据


注意
对于简单的对象来说,对象不会改变,只是复杂的对象,list套list这种

import numpy as np
import copy

def COPY():  
    global origin
    origin = [1,2,[3,4]]
    global t1 
    t1 = copy.copy(origin)
    global t2 
    t2 = copy.deepcopy(origin)
    print(t1,'----')
    print(t1 == t2)  # 比 较 内 容
    print(t2,'----')
    print(t2 is t1)  # 比 较 对 象
def UPDATE():
    origin[2][0] = 'hey!'
    print(origin)
    print(t1)
    print(t2)
def coPy_easy():
    t = 1
    p1 = copy.copy(t)
    p2 = copy.deepcopy(t)
    print(p1 == p2)
    print(p1 is p2)
if __name__ == '__main__':
    COPY()
    UPDATE()
    coPy_easy()
# 输出
# [1, 2, [3, 4]] ----
# True   内容还是一样的
# [1, 2, [3, 4]] ----
# False  已经不是同一个对象了
# 修改之后
# [1, 2, ['hey!', 4]]---------origin
# [1, 2, ['hey!', 4]]---------t1  复制的是一个地址
# [1, 2, [3, 4]]-------------t2  复制的是内容,生成了新的对象
# 简单对象
# True
# True 对于简单的对象就是同一个对象了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值