浅拷贝(copy)和深拷贝(deepcopy)的区别(面试题)

对于可变类型(eg:列表)和不可变类型(eg:元组)中的浅拷贝(copy)和深拷贝(deepcopy)的区别(面试题)

#1.可变类型(eg:列表)中的浅拷贝(copy)和深拷贝(deepcopy)的区别

import copy
a = [1,2]
b = [3,4]
c = [a,b]

#(1)、浅拷贝(可变类型)
d = copy.copy(c)

#浅拷贝时,此时d开辟了新的空间(并不是指向了c的引用),但是 d [0] 和d [1]只是分别指向
了变量a和b的引用

#(2)、深拷贝(可变类型)
e = copy.deepcopy(c)

#深拷贝时,此时d开辟了新的空间(并不是指向了c的引用),并且为 d [0] 和d [1]分配了新的
空间,并不是指向变量a和不变量b

2.不可变类型(eg:元组)中的浅拷贝(copy)和深拷贝(deepcopy)的区别对于不可变类型,
无论是使用copy还是deepcopy都只是简单的起到了指向元组的作用。

猜你喜欢

转载自blog.csdn.net/qq_43552952/article/details/84772598