python中的copy接口

主要是对复制操作进行了封装,对于该模块特定的错误,将引发 copy.Error。

1. 接口摘要

import copy

   x = copy.copy(y)        # 创建 y 的浅表副本
   x = copy.deepcopy(y)    # 创建 y 的深层副本

2. 浅表复制和深层复制的区别

浅表复制和深层复制之间的区别仅对复合对象(包含其他对象的对象,例如列表或类实例)相关。

  • 浅表复制构造一个新的复合对象,然后(尽可能地)将相同的对象插入其中,与原始对象包含的对象相同。

  • 深层复制构造一个新的复合对象,然后递归地将原始对象中找到的对象的副本插入其中

举个例子就明白了:

假设有一个列表 original = [[1, 2], [3, 4]]

  • 浅层复制shallow_copy = copy.copy(original) 会创建一个新的列表 shallow_copy,其包含与 original 相同的子列表。即,如果你修改 shallow_copy 中的子列表,这些更改会反映到 original 中,因为子列表实际上是共享的。通俗来说就是副本与原件都用的同一个东西,修改一个,就都会变。

  • 深层复制deep_copy = copy.deepcopy(original) 会创建一个全新的列表及其内部的子列表。如果你修改 deep_copy 中的子列表,original 不会受到影响,因为所有的子列表都被复制了一遍。通俗来说就是修改了副本,原件不会变,修改了原件,副本不会变。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值