【Python入門】タプルとは?リストとの違いや使い方をわかりやすく解説!

こんにちは。ゆうせいです。

今回は、Pythonの「タプル(tuple)」について解説していきます。

「タプルってなに?リストとどう違うの?」
そんな疑問を持った方に向けて、ゼロからわかりやすく説明していきますね!


h2 タプルとは何か?

h3 タプルは“変更できないリスト”のようなもの

Pythonのタプルとは、複数の値をまとめて1つの変数に保存できるデータ型です。
見た目はリストと似ているのですが、大きな違いは次の点です。

比較項目リスト(list)タプル(tuple)
作成方法[1, 2, 3](1, 2, 3)
変更可能はいいいえ(変更不可)
処理速度やや遅いやや速い
用途汎用的変更が不要なデータ

h3 実際に書いてみよう

my_tuple = (10, 20, 30)
print(my_tuple)

これで、(10, 20, 30) という3つの整数が入ったタプルが作成されます。
ちなみに、カッコ () を使います。


h2 リストとの違いをもっと詳しく

h3 変更できないってどういうこと?

たとえば、リストは中身を変更できます。

my_list = [1, 2, 3]
my_list[0] = 100
print(my_list)  # 出力: [100, 2, 3]

でも、タプルは中身を変えようとするとエラーになります。

my_tuple = (1, 2, 3)
my_tuple[0] = 100  # エラーになる!

この「変更できない(イミュータブル:immutable)」という特徴は、安全性や信頼性が求められる場面で役立ちます。

例えでいうと…

  • リストは「ノート」→あとで書き換え自由
  • タプルは「契約書」→一度決めたら変更不可

h2 タプルを使うメリットとデメリット

h3 メリット

  1. 不変性によって安心して使える
     →データが勝手に変更される心配がない!
  2. 軽くて速い
     →メモリ効率が良く、処理速度もやや速い!
  3. 辞書(dict)のキーにできる
     →リストは辞書のキーにできませんが、タプルはOK!

h3 デメリット

  1. 中身を変えられない
     →変更したい場合はリストに変換する必要あり
  2. 操作がやや制限される
     →リストのように append()remove() が使えない

h2 タプルのよく使う場面

h3 関数の戻り値として複数の値を返すとき

def get_position():
    x = 10
    y = 20
    return (x, y)

pos = get_position()
print(pos)  # 出力: (10, 20)

複数の値をまとめて返すときに便利!

h3 辞書のキーとして使いたいとき

location = {(35.6895, 139.6917): "Tokyo"}
print(location[(35.6895, 139.6917)])

ここでは、緯度と経度のペアをタプルで表しています。


h2 タプルの応用テクニック

h3 アンパック(分解)

タプルの値を一度に複数の変数に代入できます!

person = ("Taro", 18)
name, age = person
print(name)  # Taro
print(age)   # 18

これをアンパックと言います。

h3 タプルの中にリストも入れられる

mixed = (1, [2, 3])
mixed[1][0] = 99
print(mixed)  # 出力: (1, [99, 3])

あれ?中身が変わってますね?
実は、タプル自体は変更できませんが、中に入っているリストは変更可能です。
これがちょっとした落とし穴!


h2 タプルの基本操作まとめ

操作説明
インデックス取得t[0]先頭の値を取り出す
スライスt[1:3]特定範囲の取り出し
長さlen(t)要素の数
in演算子1 in t含まれているか判定

h2 数式で表すと?

例えば、2つの値 (a, b) を1つにまとめるタプルはこう表せます:

  • 記号:T = (a, b)
  • 日本語:T は a と b をまとめたもの

数式の世界でも、タプル(順序付きペア)は頻出します!


h2 まとめ:タプルの特徴を整理!

  • 変更できないことが最大の特徴
  • リストより軽くて速い
  • 辞書のキーや複数の値の返却に便利
  • 中身の一部がリストだと変更可能なので注意!

h2 今後の学習の指針

次に学ぶとよい内容は以下のとおりです!

  1. リストとの変換方法(list() や tuple())
  2. 辞書(dict)との連携
  3. セット(set)との違いと使い分け
  4. イミュータブルなデータ構造の考え方

Pythonでは、データ構造の特徴を理解して使い分けることがとても重要です。
少しずつ、確実に身につけていきましょう!

他にも知りたいPythonの用語があれば、どんどん聞いてくださいね。

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。