python - 在列表列表中设置值失败
问题描述
我在列表列表中设置值时遇到问题。我想通过嵌套的 for 循环一次更改一个值。
q = 3*[ 3*[10.] ]
for i in range(q):
for j in range(q[0]):
q[i][j] = 0
print(i,j,q)
但是 for 循环一次更改三个值。通过运行上面的代码,Python 3.7.10 给出了
0 0 [[0, 10, 10], [0, 10, 10], [0, 10, 10]]
0 1 [[0, 0, 10], [0, 0, 10], [0, 0, 10]]
0 2 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
1 0 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
1 1 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
1 2 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
2 0 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
2 1 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
2 2 [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
如何一次更改一个值?这属于Python版本的变化吗?