Python面试题--第61道题目--浅拷贝(copy)和深拷贝

Python面试题--第61道题目--浅拷贝(copy)和深拷贝,第1张

目录

一、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没有变化。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/714274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存