
【6日でできるPython入門】組み込み型 リスト②
Pythonのリスト型は、初めて学ぶ「ミュータブル(変更可能)な型」です。
一度作ったリストの中身を、自由に追加・削除・変更できる点が大きな特徴です。
この柔軟さのおかげで、リストはプログラミングの多くの場面で活躍しますが、注意しないと予期せぬ結果を招くこともあります。
ここでは、リストのミュータブル性・コピー・代入の挙動など、リストを安全かつ便利に扱うための知識を身につけましょう。

1.ミュータブル(変更可能)なリスト
1.1. リストの要素の変更
リストは作成後でも中身を直接変更できます。
たとえば、特定の要素を上書きしたり、複数の値を書き換えることが可能です。
ファイル名: lesson07-1.py
# メンバーの名前リストを途中で修正するプログラム
members = ['佐藤', '鈴木', '高橋', '田中', '伊藤']
print("元のメンバーリスト:", members)
members[2] = '山本'
print("修正後のメンバーリスト:", members)
# スライスで複数まとめて変更
members[1:3] = ['加藤', '渡辺']
print("さらに修正したリスト:", members)
実行結果
元のメンバーリスト: ['佐藤', '鈴木', '高橋', '田中', '伊藤']
修正後のメンバーリスト: ['佐藤', '鈴木', '山本', '田中', '伊藤']
さらに修正したリスト: ['佐藤', '加藤', '渡辺', '田中', '伊藤']
操作 | 内容 |
---|---|
members[2] = '山本' | 2番目(高橋)を山本に上書き |
members[1:3] = [...] | 複数まとめて変更(スライス代入) |
1.2. 文字列型との違い
リストはミュータブルですが、文字列型(str)はイミュータブル(変更不可)です。
文字列で同じことをしようとするとエラーになります。
ファイル名: lesson07-2.py
word = 'python'
# word[0] = 'P' # これはTypeErrorとなる
エラー例
TypeError: 'str' object does not support item assignment
型 | 変更できるか | 例 |
---|---|---|
リスト | できる | fruits[0] = 'オレンジ' |
文字列 | できない | text[0] = 'H' → エラー |
2.ミュータブル型の注意点
2.1. 変数の代入とコピーの違い
リスト型は変数に代入しただけだと“同じデータ”を指すことになります。
どちらかで変更を行うと、両方に反映されるので注意が必要です。
ファイル名: lesson07-3.py
# リストを2つの変数で参照し、変更する例
colors1 = ['赤', '青', '緑']
colors2 = colors1 # 単なる代入(同じリストを参照)
colors2.append('黄')
print("colors1:", colors1)
print("colors2:", colors2)
実行結果
colors1: ['赤', '青', '緑', '黄']
colors2: ['赤', '青', '緑', '黄']
操作 | 説明 |
---|---|
colors2 = colors1 | colors1とcolors2は「同じリスト」を指す |
colors2.append() | 両方に反映される(片方の変更=両方の変更) |
2.2. 正しいコピー方法(copyメソッド)
独立したリストとしてコピーしたいときは copy()
メソッドを使いましょう。
ファイル名: lesson07-4.py
scores1 = [50, 70, 80, 90]
scores2 = scores1.copy()
scores2[0] = 100
print("scores1:", scores1)
print("scores2:", scores2)
実行結果
scores1: [50, 70, 80, 90]
scores2: [100, 70, 80, 90]
方法 | 挙動 |
---|---|
a = b | どちらも同じリスト |
a = b.copy() | 独立した別々のリスト |
3.ミュータブル型・イミュータブル型まとめ
型 | 変更可能か | 代表例 |
---|---|---|
ミュータブル型 | 〇 | list, dict, set, 自作クラス |
イミュータブル型 | ✕ | int, float, str, tuple |
Pythonリストのミュータブルな性質を正しく理解すれば、
「複数の場所で同じデータを共有する」便利さと、「意図しない影響」を使い分けられるようになります。
実務でも重要な概念なので、しっかり身につけていきましょう!