刷题(八)

题目

请写出以下代码的运行结果

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']]
原文地址:https://www.cnblogs.com/my_captain/p/12808977.html