下面代码运行后,a、b、c、d四个变量的值,描述错误的是?
import copy a = [1, 2, 3, 4, ['a', 'b']] b = a c = copy.copy(a) d = copy.deepcopy(a) a.append(5) a[4].append('c')
import copy a = [1, 2, 3, 4, ['a', 'b']] b = a c = copy.copy(a) d = copy.deepcopy(a) a.append(5) a[4].append('c')
a == [1,2, 3, 4, ['a', 'b', 'c'], 5]
b == [1,2, 3, 4, ['a', 'b', 'c'], 5]
c == [1,2, 3, 4, ['a', 'b', 'c']]
d == [1,2, 3, 4, ['a', 'b', 'c']]
当我们使用下面的操作的时候,会产生浅拷贝的效果:
拷贝的特殊情况
其实,对于拷贝有一些特殊情况:
import copy a = [1, 2, 3, 4, ['a', 'b']] b = a # b 为a直接赋值 c = copy.copy(a) # 浅拷贝a d = copy.deepcopy(a) # 深拷贝a # 在这一步a, b, c, d 皆为 [1, 2, 3, 4, ['a', 'b']] a.append(5) a[4].append('c') print(a) # [1, 2, 3, 4, ['a', 'b', 'c'], 5] print(b) # [1, 2, 3, 4, ['a', 'b', 'c'], 5] print(c) # [1, 2, 3, 4, ['a', 'b', 'c']] print(d) # [1, 2, 3, 4, ['a', 'b']]