我需要将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
版权声明:本文为weixin_42142509原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。