我正在尝试创建一个简单的2D数组,其中每个元素值都是其在数组中的索引位置的总和。 例如,数组中位置(0,0)的元素的值为0,位置(1,1)的元素的值为2。
A = [[0]*5]*5
for i in range(5):
for j in range(5):
A[i][j] = (i+j)
print(A)
在Python 3.7.3中运行上述代码后,得到以下数组:
[[4, 5, 6, 7, 8],
[4, 5, 6, 7, 8],
[4, 5, 6, 7, 8],
[4, 5, 6, 7, 8],
[4, 5, 6, 7, 8]]
但是,当我在javascript中编写相同的代码时,会得到以下正确的输出:
[[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8]]
有人知道为什么吗?我感觉好像误会了变量“ i”是如何在循环的最内部表示的,因为当我尝试将列表中的每个元素分配给“ i”时,所有值都被设置为4,但打印了“ i”每次执行内循环时返回控制台是否返回正确的结果? 非常感谢您提供任何帮助。