嵌套数组的奇怪行为

时间:2014-08-26 12:43:26

标签: python arrays

假设我有一个嵌套数组,foo

>>> foo = [[" ", " "], [" ", " "]]

说我想要更改数组0的元素0。我会这样做:

>>> foo[0][0] = "a"
>>> print foo
[["a", " "], [" ", " "]]

假设相反foo等于:

>>> foo2 = [[" "] * 2] * 2

如果我打印foo2,我仍会得到与原始foo相同的结果:

>>> print foo2
[[" ", " "], [" ", " "]]

如果我尝试更改foo2中的元素,我会得到以下结果:

>>> foo2[0][0] = "a"
>>> print foo2
[["a", " "], ["a", " "]]

如您所见,它不是仅替换数组0的元素0,而是替换了所有数组中的元素0。是什么导致了这种奇怪的行为?

0 个答案:

没有答案