他の言語から来た私は、リストでの Python 変数の割り当て方法について少し混乱しています。例として、次のように言いましょう。
x = [4, 5, 2, 70, 1]
y = x
y.sort()
x と y が出力される場合、結果は両方の変数で同じになります。
x = [1, 2, 4, 5, 70]
y = [1, 2, 4, 5, 70]
この動作はまったく予想していませんでした。リスト y にのみ sort メソッドを適用したため、x のシーケンスは変更されないと思いました。
一方、スライス演算子を使用してリスト x の内容をリスト y に割り当てた場合、(少なくとも私の場合は) 期待どおりの動作が得られます。
x = [4, 5, 2, 70, 1]
y = x[:]
y.sort()
x と y が出力された場合、リスト x は変更されていないことがわかります。
x = [4, 5, 2, 70, 1]
y = [1, 2, 4, 5, 70]
誰かが背後にあるロジックを説明できますか?
ありがとうございました!