Pythonのリスト(list)とタプル(tuple)の違いを徹底解説!使い分けのポイント
Pythonには複数の値をまとめて扱うためのデータ構造として「リスト(list)」と「タプル(tuple)」が用意されています。どちらもシーケンス型の一種で似たような使い方ができますが、「変更可能かどうか」「処理速度」「メモリ効率」などの点で大きな違いがあります。
この記事では、それぞれの特徴とコード例、そして6つの観点からの比較表を使って、両者の違いと使い分けのポイントをわかりやすく解説します。
リスト(list)とは
リストは、異なる型のオブジェクトを格納できるミュータブル(変更可能)なコンテナです。要素の追加・削除・変更が自由に行えるため、データの入れ替えや繰り返し処理(イテレーション)によく使われます。
記述方法は角括弧 [ ] を使用します。
my_list = ['a', 'b', 'c', 'd', 'e']
# 要素の変更・追加・削除が可能
my_list[0] = 'x'
my_list.append('f')
print(my_list) # ['x', 'b', 'c', 'd', 'e', 'f']タプル(tuple)とは
タプルもリストとよく似たデータ構造ですが、イミュータブル(変更不可)である点が異なります。一度作成したタプルは、要素の変更・追加・削除ができません。その代わり、リストよりも処理が高速で、メモリ消費も抑えられます。
記述方法は丸括弧 ( ) を使用します。
my_tuple = ('a', 'b', 'c', 'd', 'e')
# 要素の参照は可能
print(my_tuple[0]) # 'a'
# 変更しようとするとエラーになる
my_tuple[0] = 'x' # TypeError: 'tuple' object does not support item assignment以下の表は、リストとタプルの重要な違いをまとめたものです。
リストとタプルの比較表
| No. | 項目 | リスト(list) | タプル(tuple) |
|---|---|---|---|
| 1 | 可変性(型) | ミュータブル(変更可能)。 | イミュータブル(変更不可)。 |
| 2 | 反復処理の速度 | 反復処理はやや遅く、時間がかかる。 | 反復処理が高速。 |
| 3 | 適した用途 | 要素の挿入・削除など、データを書き換える処理に有用。 | 要素へのアクセスなど、読み取り専用の操作に有用。 |
| 4 | メモリ消費量 | メモリをより多く消費する。 | メモリ消費が少ない。 |
| 5 | 組み込みメソッド | append() や remove() など、豊富な組み込みメソッドを持つ。 | count() や index() など、組み込みメソッドが少ない。 |
| 6 | エラーの発生しやすさ | データを変更できるため、操作ミスによる予期しないエラーが起こりやすい。 | データが不変のため、操作が安全。 |
辞書のキーとして使えるか
もう一つ重要な違いとして、タプルはイミュータブル(ハッシュ可能)であるため辞書(dict)のキーや集合(set)の要素として利用できますが、リストはミュータブルなためキーとして使用できません。
coordinates = {(35.6895, 139.6917): "東京", (34.6937, 135.5023): "大阪"}
print(coordinates[(35.6895, 139.6917)]) # 東京使い分けの目安
- 後から内容を書き換える可能性がある場合 → リストを使用
- 固定されたデータ(曜日名、設定値など)を扱う場合 → タプルを使用
- パフォーマンスやメモリ効率を重視する場合 → タプルを使用
- 辞書のキーが必要な場合 → タプルを使用
このように、リストとタプルは用途によって適切に使い分けることで、より安全で効率的なPythonコードを書くことができます。
-
Pythonのリストと配列(array)の違いとは?使い分けのポイントを解説
Pythonのリストと配列、何が違うのか?Pythonでデータを扱う際、「リスト(list)」と「配列(array.array)」はどちらもよく使われるデータ構造ですが、それぞれ特徴が大きく異なります。この記事では、両者の違いと使い分けのポイントをわかりやすく解説します。リスト(list):柔軟性が高い万能型Pythonのリストは非常に柔軟なデータ構造です。最大の特徴は、異なる型のデータを混在させて格納できる点にあります。例えば、以下のように整数・文字列・ネストしたリストなどを自由に組み合わせられます。[1, a, [1, 2], string]また、リストへの要素追加(append)は償却定
-
Pythonのリストとタプルの違いとは?特徴と使い分けのポイントを解説
Pythonでは複数の値をまとめて扱えるシーケンス型として、リスト(list)とタプル(tuple)がよく使われます。どちらも似たような役割を持っていますが、決定的な違いがあります。それはタプルが「不変(immutable)」であるという点です。 最大の違い:タプルは変更できない タプルは一度作成すると、その中の値を後から変更することができません。一方、リストは「可変(mutable)」なので、作成後でも要素の追加・削除・変更が自由に行えます。 # リスト:変更可能 my_list = [1, 2, 3] my_list[0] = 10 # 正常に変更できる # タプル:変更不可 my_