需要注意,\(python\) 的列表与 \(CPP\) 的 \(vector\) 在赋值方面原理并不相同:
\(vector\) 的直接赋值本身就是深拷贝;而 \(python\) 列表的赋值是浅拷贝。也就是说在做题的过程中,不可以直接用 "\(b = a\)" 的方式来直接复制一个列表,而要使用专门的深拷贝函数——\(deepcopy\)。
引入库:
from copy import deepcopy
使用:
from copy import deepcopy
a = [1, 2, 3, 4, 5]
b = a
b[0] = 6
print(f"a:{a}")
print(f"b:{b}")c = [1, 2, 3, 4, 5]
d = deepcopy(c)
d[0] = 6
print(f"c:{c}")
print(f"d:{d}")
运行结果:
a:[6, 2, 3, 4, 5]
b:[6, 2, 3, 4, 5]
c:[1, 2, 3, 4, 5]
d:[6, 2, 3, 4, 5]