Python 赋值、浅拷贝和深拷贝的区别

python赋值、浅拷贝和深拷贝的区别

在Python中,赋值(=)、浅拷贝(copy.copy())和深拷贝(copy.deepcopy())三者之间的主要区别在于它们如何复制对象。

赋值:将一个变量指向另一个对象,新的变量只是旧的变量的别名

浅拷贝:创建一个新的对象,新对象的属性和原对象相同,但是属性内部的引用还是指向源对象内部的引用(只拷贝父对象,不拷贝子对象)

深拷贝:创建一个新的对象,新对象的属性和原对象相同,且属性内部的引用也指向新对象。(递归拷贝)

import copy
 
# 原始对象
original = [1, 2, [3, 4]]
 
# 赋值
assigned = original
 
# 浅拷贝
shallow_copy = copy.copy(original)
 
# 深拷贝
deep_copy = copy.deepcopy(original)
 
# 修改原始对象
original.append(5)
original[2].append(5)
 
# 输出结果
print("Original:", original)			# [1, 2, [3, 4, 5], 5]
print("Assigned:", assigned)			# [1, 2, [3, 4, 5], 5]
print("Shallow Copy:", shallow_copy)	# [1, 2, [3, 4, 5]]
print("Deep Copy:", deep_copy)			# [1, 2, [3, 4]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值