就在我以为我已经理解 Python 列表是如何工作的时候......
>>> a = [1,2,3]
>>> b = a[:]
>>> b
[1,2,3]
>>> b[1]=100
>>> b
[1,100,3]
>>> a
[1,2,3]
到目前为止,一切都很好。我正在用 a 的内容初始化 b,以便 b 指向不同的对象。因此,b 的变化不会影响 a。
现在看看另一个例子:
>>> a = [[1,2,3],[4,5,6],[7,8,9]]
>>> b = a[:][:]
>>> b
[[1,2,3],[4,5,6],[7,8,9]]
>>> b[1][1] = 100
>>> b
[[1,2,3],[4,100,6],[7,8,9]]
>>> a
[[1,2,3],[4,100,6],[7,8,9]]
为什么这次b的变化影响了a?与前面的例子有什么不同?