原因是因为在Python中,变量本身并不存储值,而是存储一个指向内存中存储值的地址。当进行赋值操作时,实际上是将新值赋给了新的地址,而不是更新原地址中的值。

例如,在上图中,当执行lss = ls时,实际上并没有将ls中的值复制给lss,而是将lss指向了与ls相同的地址。因此,当ls变化时,lss指向的地址中的值也会改变,而ls本身没有改变。

而在下图中,lss的赋值操作是将新值赋给了一个新的地址。因此,当ls改变时,并不会影响lss所指向的地址中的值。这也是为什么输出lss的结果不会改变的原因。

示例代码:

ls = [1, 2, 3]
lss = ls
print(lss)  # 输出: [1, 2, 3]

ls.append(4)
print(lss)  # 输出: [1, 2, 3, 4]

lss = [5, 6, 7]
print(ls)   # 输出: [1, 2, 3, 4]
print(lss)  # 输出: [5, 6, 7]

在上面的代码中,我们首先将ls赋值给lss,然后改变了ls的值,并输出了lss。可以看到,lss的值也跟着改变了。接着,我们再将lss赋值为一个新的列表,然后分别输出lslss的值。可以看到,ls的值并没有受到影响,而lss的值改变为了新的列表。