【Python】中深拷贝与浅拷贝

本文介绍了Python中列表拷贝的两种方式:浅拷贝和深拷贝。通过示例代码展示了当列表包含数值、字符串、类实例或复杂数据结构时,浅拷贝和深拷贝的不同行为。对于列表内的数值和字符串,浅拷贝会产生新对象,而对列表中的类实例和嵌套列表,浅拷贝仅复制引用,修改拷贝后的对象会影响到原始对象。深拷贝则会创建完全独立的对象副本,修改不会影响原始对象。了解这两种拷贝的区别对于理解和处理Python中的数据结构至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python在创造之初,就有一个约定,在对列表调用cop()函数时,如果
列表中是直接存放的数值、字符串,那就是深拷贝,会复制出一个新对象;
列表中是class实例、列表、字典,那拷贝就是浅拷贝,对拷贝后的修改会影响原对象;
因为复制对象和实例所需的内存多,所以默认是浅拷贝;

# 对列表对象的浅拷贝
l = [[1], [2], [3]]
_l = copy(l)
_l[0][0] = -1
print(_l)
print(l)

# 对列表对象的深拷贝
l = [[1], [2], [3]]
_l = deepcopy(l)
_l[0][0] = -1
print(_l)
print(l)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值