首页 > 解决方案 > 只有for循环的最后一次迭代存储在python中我的二维数组的每个索引处

问题描述

我正在尝试使用嵌套的 for 循环在 python 中创建一个二维数组。这是我的代码:

count = 0
stateArray = []
state = [0]*2
for i in range (0,2):
    for j in range(0,2):
        state[0] = i
        state[1] = j
        stateArray.append(state)
        print (count)
        print (stateArray[count])
        count += 1
print(stateArray[0])
print(stateArray[1])
print(stateArray[2])

这是我的输出:

0
[0, 0]
1
[0, 1]
2
[1, 0]
3
[1, 1]
[1, 1]
[1, 1]
[1, 1]

为什么一旦我退出循环,我的 stateArray 会更改为在每个索引处存储 fo 循环的最后一次迭代?

标签: python

解决方案


我认为你需要:

count = 0
stateArray = []
# state = [0]*2
for i in range (0,2):
    for j in range(0,2):
        # state[0] = i
        # state[1] = j
        stateArray.append([i,j])
        print (count)
        print (stateArray[count])
        count += 1
print(stateArray[0])
print(stateArray[1])
print(stateArray[2])

输出:

0
[0, 0]
1
[0, 1]
2
[1, 0]
3
[1, 1]
[0, 0]
[0, 1]
[1, 0]

推荐阅读