Python:2个相等的数组在相同的操作后不相等

时间:2018-10-04 21:36:52

标签: python arrays

我有以下简单的python代码:

arr1 = [[0]*4]*4

arr = [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]

print arr
print arr1
print arr1 == arr

for x in range(0,3):
    arr[1][1] = 1 

for x in range(0,3):
    arr1[1][1] = 1 

print arr
print arr1
print arr == arr1

此代码产生以下输出:

[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
True
[[0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
[[0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0]]
False

有人可以告诉我为什么输出不同,为什么数组不再相等吗?我在数组上执行相同的操作,并且在开始时它们是相等的,如输出所示。如果我在这里做蠢事,请告诉我。

0 个答案:

没有答案