Pythonの二次元リストListはいずれかの値を変更すると、すべての項目の値が変化します。

次のように 2 次元のリストを作成します。

list1 = [[0,0,0],
        [0,0,0],
        [0,0,0]]

いずれかの値を変更します。たとえば、

list1[1][1] = 2

通常、結果は次のようになります。

list1 = [[0,0,0],
        [0,2,0],
        [0,0,0]]

上記は問題ありません。

                                                                                                                                                      

ただし、値の 1 つを変更すると、すべての項目が変更される場合があり、上記の結果は次のようになります。

list1 = [[0,2,0],
        [0,2,0],
        [0,2,0]]

その理由は、2D 配列の作成方法に問題があるためです。考えられる作成方法は、

list1 = [[0] * 3] * 3

に変更できます

list1 = [[0] * 3 for _ in range(3)]

おすすめ

転載: blog.csdn.net/nature1949/article/details/119937302