2Dリストをコピーしたいので、一方のリストを変更しても、もう一方のリストは変更されません。
1次元のリストの場合は、次のようにします。
a = [1, 2]
b = a[:]
そして、b
を変更しても、a
は変更されません。
しかし、これは2次元のリストでは機能しません。
a = [[1, 2],[3, 4]]
b = a[:]
b
を変更すると、a
も変更されます。
どうすれば修正できますか?
次元の数に関係なく機能するより一般的なソリューションについては、copy.deepcopy()
を使用します。
import copy
b = copy.deepcopy(a)
b = [x[:] for x in a]
コピーパッケージをインポートせずにこのコードを使用することもできます
b=a.copy()