Python面试题--第61道题目--浅拷贝(copy)和深拷贝(deepcopy)的区别--2022年04月16日

目录

一、copy和deepcopy的区别:

二、实操代码演示:


一、copy和deepcopy的区别:

1、定义:

浅拷贝(copy):只复制深层对象的引用

深拷贝(deepcopy):赋值深层对象的本身

二、实操代码演示:

一个列表中包含列表元素,当列表元素发生改变时,如果只是浅拷贝,拷贝后的对象也会变化,而深拷贝的对象是不会改变的。

举例说明:

import copy

a = [1,2,3, [4,5,6]]
c = copy.copy(a) # 浅拷贝
d = copy.deepcopy(a) # 深拷贝
print('a,c,d没有区别')
print(a)
print(c)
print(d)
a[2] = 'tt'
print('c,d没有区别')
print(a)
print(c)
print(d)
a[3][0] = 'haha'
print('c,d有区别')
print(a)
print(c)
print(d)

执行结果如下图:

总结:

a是肯定改变的,c因为是a的深层对象的引用,所以a改变了a[2]="tt",但是c没有改变。但是a改变了a[3][0] = 'haha',c也发生变化了。

d是开始时对a的完全复制,然后就跟a没有关系了,所以a改变,d没有变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值