カテゴリ: 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
Django
Djangoプロジェクトのディレクトリ構造を完全解説!初心者でも迷わないフォルダの見方
New2
Flask
Flask×Flask-SocketIOでチャットアプリを作る流れを初心者向けにやさしく解説
New3
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New4
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.8
Java&Spring記事人気No8
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説