Python list运用相关 可变对象

img

请问最后一排输出的list_a中,第三个数字为什么由一开始的-3变成了3?
以及list(list_a)看起来好抽象,可以解释一下吗TT

有点浅拷贝的意思,你list_b=list(list_a),创建了一个列表list_b,相当于把第一层的列表元素拷贝过来了,所以list_b=-1时只会改变list_b列表的值,不会改变list_a,但是你忘了你的原列表里面有一个小列表,你可以把这个小列表理解成为一个地址或者引用类型,此时你在list_b改变这个小列表的值,在list_a里也会改变,即list_b[2][0]=3也会使list_a里的小列表的-3变为3!
你可以下去搜着了解一下列表的深拷贝与浅拷贝,有帮助的话采纳一下哦!

从-3变成3是因为,list_b[2][0]=3所导致的
list()函数就是将目标转换为list类型。

list(list_a)会返回list_a的一个副本,但只是浅复制,对于列表中的列表对象只复制了对象的引用,并没有对实际的列表对象做复制,所以list_a和list_b第三个元素都是指向同一个列表对象,因此对list_b中的列表对象的修改也会反应在list_a中