python中的深浅拷贝

1.    浅拷贝  copy.copy

浅拷贝是对于个对象的顶层拷贝 通俗的理解是:拷贝了引⽤,并没有拷内容

浅拷贝只复制第一层数据,更深层的引用不管。


 

2.    深拷贝   copy.deepcopy

深拷贝是对于个对象所有层次的拷贝(递归)

 

 

3.    注意点浅拷贝对不可变类型和可变类型的copy不同

对于不可变量类型、不可变量(元组)浅拷贝与深拷贝是一样

In    [88]:    a    =    [11,22,33]

In    [89]:    b   =    copy.copy(a)

In    [90]:    id(a)

Out[90]:    59275144

In    [91]:    id(b)

Out[91]:    59525600

In    [92]:    a.append(44)

In    [93]:    a

Out[93]:    [11,    22,    33,    44]

In    [94]:    b

Out[94]:    [11,    22,    33] In    [95]:

In    [95]:

In    [95]:    a    =    (11,22,33)

In    [96]:    b    =    copy.copy(a)

In    [97]:    id(a)

Out[97]:    58890680

In    [98]:    id(b)

Out[98]:    58890680

4.    拷贝的其他⽅式

 

1.表达式可以赋值个序列

  1. =    "abc"
  2. =    a[:]

 

2.字典的copy⽅法可以拷⼀个字典

d    =   dict(name="zhangsan",   age=27)

co    =   d.copy()

 

3.有些内置函数可以成拷贝(list)

  1. =    list(range(10))
  2. =    list(a)

4.copy模块中的copy函数

import    copy

  1. =    (1,2,3)
  2. =    copy.copy(a)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值