我需要将a列表的值赋给b列表的值,开始是这么写的:
a=[1,2,3,4] b=a b.remove(2) print(a) print(b)
但是我移除b中的某个元素时,a中的元素也被移除了,输出结果为:
[1, 3, 4] [1, 3, 4]
然后打印两个列表的地址:
print(a is b) #True print(id(a)) #2198485055240 print(id(b)) #2198485055240
输出是同一对象,地址也是一样的。
原因涉及到深拷贝与浅拷贝。
解决方法可以用到切片:
a=[1,2,3,4] b=a[:] b.remove(2) print(a is b) #False print(id(a)) #2718473631496 print(id(b)) #2718473595656



