2021年12月08日 更新
どうも、クラゲジュニアです。
Pythonで、listのデータを =
を使ってコピーした場合、一方の要素を変更すると、もう一方の要素も変更されてしまいます。それを防ぐ方法を紹介します。
a = [1, 2, 3]
b = a
a[0] = [5, 5]
print(a)
print(b)
#出力結果
#[[5, 5], 2, 3]
#[[5, 5], 2, 3]
a[0]を変更すると,b[0]も変更されます。
スライスを使ってコピーすると、この問題を防ぐことができます。
a = [1, 2, 3]
b = a[:]
a[0] = [5, 5]
print(a)
print(b)
#出力結果
# [[5, 5], 2, 3]
# [1, 2, 3]
a[0]を変更しても、b[0]は変更されません。
以上です。