题目
请写出以下代码的运行结果
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")
# 请根据以上规则,写以下输出内容
print('a = ', a)
print('b = ', b)
print('c = ', c)
print('d = ', d)
思路
记住一点,直接赋值,是所有对象都指向同一对象的引用,因此,原对象一变,所有对象都会变
浅拷贝,是父对象拷贝出来,独立了,而子对象还是指向同一对象的引用,因此,原对象一变,父对象不变,只有子对象会变
深拷贝,是所有对象都拷贝出来,独立了,因此,原对象一变,所有对象都不会变
结果
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']]