a=[3,1,2]
b=a
b[0]=30
print(a)
这个事python,帮忙讲解一下
代码
a=[3,1,2]
b=a
b[0]=30
print(a)
运行结果
[30, 1, 2]
结果为[30, 1, 2]
典型的深拷贝和浅拷贝问题。
可以理解为你这种写法是a和b在内存里共同一块区域。
如果想避免这种情况可以使用
import copy
b = copy.deepcopy(a)
[30,1,2],这个和python的属性有关,python中的数据都是引用传递,同样的值,他们的地址相同。除了不可变变量,其他所有的可变变量如果对象的值改变,则原来的值也会改变。不可变对象则不受影响
不知道你这个问题是否已经解决, 如果还没有解决的话: