我在Python中遇到了一种我认为是奇怪的行为,如果可能的话,我希望有人能够解释一下。
我创建了一个空的二维列表。
listy = [[]]*3
print listy
[[], [], []]
以下代码表现出了我所期望的效果:
listy[1] = [1,2]
会得到 [[], [1,2], []]
listy[1].append(3)
会得到 [[], [1,2,3], []]
然而,当我向其中一个空列表添加元素时,Python会将元素添加到所有子列表中,具体如下:
listy[2].append(1)
会得到 [[1], [1,2,3], [1]]
。
是否有人能够解释一下为什么会出现这种行为呢?