Python リストは参照ではなく値でリストされます [重複] 質問する

Python リストは参照ではなく値でリストされます [重複] 質問する

例を見てみましょう

a=['help', 'copyright', 'credits', 'license']
b=a
b.append('XYZ')
b
['help', 'copyright', 'credits', 'license', 'XYZ']
a
['help', 'copyright', 'credits', 'license', 'XYZ']

リスト 'b' に値を追加したかったのですが、リスト 'a' の値も変更されています。
なぜこのようになるのかよくわかりません (Python はリストを参照で渡します)。
私の質問は、「'b' を追加しても 'a' の値が変更されないように、値で渡すにはどうすればよいか」ということです。

ベストアンサー1

Pythonでは値を渡すことはできません。 のコピーを作成したい場合はa公式 Python FAQ:

b = a[:]

おすすめ記事