在Python中嵌套2D数组的for循环?

时间:2019-10-31 22:36:53

标签: arrays python-3.x for-loop nested-loops python-3.7

我正在尝试创建一个简单的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”每次执行内循环时返回控制台是否返回正确的结果? 非常感谢您提供任何帮助。

0 个答案:

没有答案