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