首页 > 解决方案 > 在列表列表中设置值失败

问题描述

我在列表列表中设置值时遇到问题。我想通过嵌套的 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版本的变化吗?

标签: python

解决方案


推荐阅读