我在 Spyder IDE 上测试了以下 python 代码。认为它会输出二维数组q
,从 0..31q[0][0]
到q[3][7]
。但它实际上返回 q 为:
[[24, 25, 26, 27, 28, 29, 30, 31], [24, 25, 26, 27, 28, 29, 30, 31], [24, 25, 26, 27, 28, 29, 30, 31], [24, 25, 26, 27, 28, 29, 30, 31]].
编码:
q=[[0]*8]*4
for i in range(4):
for j in range(8):
q[i][j] = 8*i+j
print q
知道这里发生了什么吗?我一步一步调试。它显示每一行的更新将与所有其他行同步,这与我对其他编程语言的体验完全不同。