面试题答案
一键面试a = [1, [2, 3]]
# 深拷贝整个列表,需要导入copy模块
import copy
new_a = copy.deepcopy(a)
new_a[1][0] = 20
print(new_a)
解释:使用copy.deepcopy
函数可以对列表a
进行深拷贝。浅拷贝只会复制顶层对象,对于嵌套的子列表只是复制引用,所以在浅拷贝后修改子列表会影响原始列表。而深拷贝会递归地复制所有层次的对象,这样修改new_a
中的子列表不会对原始的a
产生影响。