结果多少谁能讲一下,本人不会python

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]

img

典型的深拷贝和浅拷贝问题。
可以理解为你这种写法是a和b在内存里共同一块区域。
如果想避免这种情况可以使用

import copy 


b = copy.deepcopy(a)

[30,1,2],这个和python的属性有关,python中的数据都是引用传递,同样的值,他们的地址相同。除了不可变变量,其他所有的可变变量如果对象的值改变,则原来的值也会改变。不可变对象则不受影响

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^