pythonの2 D配列の定義について


最近pythonの2次元配列を使う時、1つの問題を発見しました:arr = [[0] * n] * nのこの形式を使う時、配列の中の1つのデータを修正することを発見する時、同時に1列のデータを変えて、検索を通じて発見するのは引用のメカニズムの問題で、原理の解析:2次元配列の引用の解釈です.
では、データを変更できる2 D配列をどのように定義しますか?この形式はarr=[[0]*n for i in range(n)]
注意:[0]*nは1次元配列であり、for i in range(n)はその1次元配列をnサイクルして2次元配列を実現する