看到一到题目:
>>> import copy >>> a = [1, 2, 3, ['a', 'b', 'c']] >>> b = a >>> c = copy.copy(a) >>> d = copy.deepcopy(a) >>> print id(a) == id(c) _____ >>> print id(a) == id(d) _____ >>> print id(a[0]) == id(c[0]) _____ >>> print id(a[3]) == id(d[3]) _____ A. True True True True B. False False True False C. False False False False D. True True False False然后,我是这样考虑的:
然后,就自然而然地得到了C的答案,但是结果却是错的,又在python的终端中进行运算,发现正确答案是B,然后,我就在纠结:id(a[0])==id(c[0]),为什么是True。因为,根据我的推断,c[0]的地址和a[0]的地址是不一样的。
紧接着,我又做了一个实验:
>>> c.append(4) >>> a [1,2,3,['a','b','c']] >>> c [1,2,3,['a','b','c'],4] >>> id(a[0])==id(c[0])实验结果仍然是True,我很纳闷是哪里错了?