这是我的代码。
import numpy as np
m = 2
n = 2
arr = [[0]*m]*n
for i in np.arange(n):
for j in np.arange(m):
print(i)
arr[i][j] = i
print(arr)
输出为:
0
0
1
1
[[1,1],[1,1]]
我不明白为什么输出数组不是 [[0,0],[1,1]]。 拜托我疯了。
答案 0 :(得分:2)
因为 [0]*m
对象被重复了 n
次。无论您的 i
是什么,您都在更改同一个对象,因此您只能看到打印的最后一个更改。
arr = [[0]*m for _ in range(n)]
解决问题