Python 中快速嵌套列表的意外更新结果

Unexpected update result on the quickly nested list in Python

为什么不能更新第一个元素,而是更新下面的整列?

>>> x=2*[2*[1]]
>>> x
[[1, 1], [1, 1]]
>>> x[0][0]=2
>>> x
[[2, 1], [2, 1]]

即使这是明显的重复,但使用 range:

>>> x=[[1 for i in range(2)] for x in range(2)]
>>> x
[[1, 1], [1, 1]]
>>> x[0][0]=2
>>> x
[[2, 1], [1, 1]]
>>> 

至少还能做到:

>>> x=[[1]*2 for x in range(2)]
>>> x[0][0]=2
>>> x
[[2, 1], [1, 1]]
>>>