カテゴリ: Python 更新日: 2025/12/28

Pythonのタプルとは?リストとの違いと基本的な使い方を解説

Pythonのタプルとは?リストとの違いと基本的な使い方を解説
Pythonのタプルとは?リストとの違いと基本的な使い方を解説

先生と生徒の会話形式で理解しよう

生徒

「Pythonでリストみたいだけど変更できない“タプル”ってありますか?」

先生

「はい、tupleというデータ型で、リストと似ていますが、値を変えられない特徴があります。」

生徒

「リストとの違いや、どう使うか教えてください!」

先生

「では、初心者向けに分かりやすく解説していきますね!」

1. タプルとは何?リストとの違い

1. タプルとは何?リストとの違い
1. タプルとは何?リストとの違い

Pythonのタプルは、丸かっこ()で作る「順番付きの箱」のようなものです。中身を一度決めたら変更できません。これはimmutable(イミュータブル:変更不可能)という性質です。

一方、リストは角かっこ[]で作り、値を追加・削除・変更できる「mutable」(ミュータブル:変更可能)です。

※「変更不可能(イミュータブル)」や「変更可能」は初心者でも押さえておきたい基本概念です。

例を見てみましょう。


my_list = [10, 20, 30]
my_tuple = (10, 20, 30)

2. タプルの基本操作:長さ・取り出し

2. タプルの基本操作:長さ・取り出し
2. タプルの基本操作:長さ・取り出し

リストと同じように、len()で要素の数を調べたり、インデックスで値を取り出せます。


print(len(my_tuple))          # 要素の数を表示
print(my_tuple[1])            # 20 を取り出す
print(my_tuple[-1])           # 後ろから最初の値(30)

3
20
30

スライスも使えて、my_tuple[0:2]で先頭から2つの要素だけ取り出せます。

3. リストとタプルの違いを試してみよう

3. リストとタプルの違いを試してみよう
3. リストとタプルの違いを試してみよう

リストはあとから変えられますが、タプルは変更できません。


my_list[0] = 100      # OK
my_tuple[0] = 100     # エラーになる!

TypeError: 'tuple' object does not support item assignment

このように、タプルに変更を加えようとすると「TypeError(タイプエラー)」が起きて止まってしまいます。

4. なぜタプルを使うの?メリットは?

4. なぜタプルを使うの?メリットは?
4. なぜタプルを使うの?メリットは?
  • タプルは変更できないので、安全に使いたいときに安心。
  • イテレーション(順に処理)やループの速度が速いことがあります :contentReference[oaicite:1]{index=1}。
  • メモリ使用量が少なめで効率的 :contentReference[oaicite:2]{index=2}。
  • タプルはハッシュ可能なので、辞書のキーとして使えます(リストは使えない) :contentReference[oaicite:3]{index=3}。

つまり、「変わらないデータ」を安全に、効率よく扱いたいときにぴったりです。

5. タプルの作り方:丸かっこ or コンマ?

5. タプルの作り方:丸かっこ or コンマ?
5. タプルの作り方:丸かっこ or コンマ?

通常は丸かっこ()で作りますが、コンマだけでもタプルになります。


t1 = (1, 2, 3)
t2 = 1, 2, 3
print(type(t1), type(t2))

<class 'tuple'> <class 'tuple'>

1つだけのタプルを作る場合は、(値,)のように最後にカンマが必要です。

6. ネスト構造や文字列→タプルもOK

6. ネスト構造や文字列→タプルもOK
6. ネスト構造や文字列→タプルもOK

リストと同じく、タプルの中にリストを入れたり、ネストしたりできます。


nested = (1, [2,3], ("a","b"))
print(nested[1][0])    # 2 を取り出す

文字列やリストをtuple()でタプルに変換することも可能です。


print(tuple("abc"))    # ('a','b','c')
print(tuple([4,5,6]))  # (4,5,6)

7. リストとタプルの使い分けまとめ

7. リストとタプルの使い分けまとめ
7. リストとタプルの使い分けまとめ
用途リストタプル
変更可否○:自由に変更できる×:作ったら変更不可
速度・効率普通やや高速・メモリ効率◎ :contentReference[oaicite:4]{index=4}
辞書のキー不可
使う場面データの追加や変更が必要な時固定データやハッシュキーにする時

8. 初心者に向けた実生活での例え

8. 初心者に向けた実生活での例え
8. 初心者に向けた実生活での例え

リストは「買い物リスト」。好きに追加したり消したりできます。タプルは「予約済みの旅行日程」。一度決めたら変えられないイメージです。

何が変わるか変わらないかで使い分けると、わかりやすいです。

まとめ

まとめ
まとめ

今回の記事では、Pythonの基本データ型のひとつであるタプル(tuple)について、リストとの違いを中心に、作り方や使い方、実際にどんな場面で使うのが適しているのかを詳しく学びました。タプルはリストと同じく複数の値を順番に管理できるデータ構造ですが、大きな特徴として「一度作成したら中身を変更できない」という性質を持っています。この性質はイミュータブル(変更不可能)と呼ばれ、Pythonを学ぶうえで非常に重要な考え方です。

記事の中では、タプルとリストの文法的な違いとして、タプルは丸かっこ、リストは角かっこを使う点を確認しました。しかし、見た目以上に重要なのは「使い分けの考え方」です。値を追加したり、削除したり、後から変更する必要があるデータにはリストが向いており、逆に「最初に決めた内容を安全に保ちたい」「途中で書き換わってほしくない」データにはタプルが適しています。

また、タプルは変更できないため、プログラムの途中で誤って値を書き換えてしまう心配が少なく、安全性の高いデータ管理が可能です。さらに、タプルはハッシュ可能であるため、辞書のキーとして使用できる点も重要なメリットです。リストは辞書のキーに使えませんが、タプルであれば座標情報や固定条件の組み合わせなどをキーとして扱うことができます。この違いを理解しておくと、Pythonでの設計の幅が大きく広がります。

基本操作としては、len()で要素数を調べたり、インデックスやスライスで値を取り出したりと、リストとほぼ同じ感覚で扱える点も初心者にとって安心できるポイントです。一方で、要素の代入や削除を行おうとするとTypeErrorが発生するため、「タプルは中身を書き換えられない」という前提を常に意識することが大切です。

さらに、タプルは丸かっこだけでなく、カンマ区切りでも作成できることや、要素が一つだけの場合にはカンマが必要になる点、文字列やリストをtuple()関数で変換できる点など、実践で役立つ細かな知識も確認しました。ネスト構造にも対応しており、タプルの中にリストや別のタプルを入れることも可能なため、複雑なデータ構造の基礎としても活躍します。

Python初心者のうちは「とりあえずリストを使えばいい」と感じることも多いですが、タプルの特性を理解して使い分けられるようになると、コードの意図が明確になり、読みやすく、バグの少ないプログラムを書けるようになります。「Python タプル 使い方」「Python リスト タプル 違い」「Python tuple immutable」といったテーマは、今後の学習でも何度も登場する重要なポイントです。今回学んだ内容を土台として、ぜひ実際のコードの中でタプルを積極的に使ってみてください。

サンプルプログラムで振り返ろう


# タプルの基本操作
user_info = ("Alice", 25, "Tokyo")

print("名前:", user_info[0])
print("年齢:", user_info[1])
print("要素数:", len(user_info))

# 辞書のキーとして使う例
locations = {
    (35.68, 139.76): "東京",
    (34.69, 135.50): "大阪"
}

print(locations[(35.68, 139.76)])

このサンプルでは、タプルの要素参照や長さの取得、そして辞書のキーとしての利用例を確認できます。リストではできない使い方ができる点に注目しながら、実際にコードを動かしてみると理解が深まります。

先生と生徒の振り返り会話

生徒

「タプルはリストと似ているけど、変更できないところが一番の違いなんですね。」

先生

「その通りです。変わらないデータを扱うときに、タプルはとても頼りになります。」

生徒

「辞書のキーに使えるというのは、リストとの大きな違いだと思いました。」

先生

「よく気づきましたね。設計を考えるとき、その違いがとても重要になります。」

生徒

「最初はリスト、変えたくないデータはタプル、という使い分けを意識してみます。」

先生

「それができれば十分です。経験を積むほど、タプルの良さが実感できるようになりますよ。」

カテゴリの一覧へ
新着記事
New1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
New2
Flask
Flaskアプリのセキュリティ対策まとめ!初心者向けに基本をやさしく解説
New3
Flask
FlaskでCookieを安全に使う方法!HttpOnly・Secureフラグの使い方を徹底解説
New4
Flask
Flaskで外部APIと連携する方法!requestsライブラリの使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.5
Java&Spring記事人気No5
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips
No.6
Java&Spring記事人気No6
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.8
Java&Spring記事人気No8
Flask
FlaskのSQLAlchemyでフィルタリング検索!filter, filter_byの使い方完全ガイド