【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 メリット
- 不変性によって安心して使える
→データが勝手に変更される心配がない! - 軽くて速い
→メモリ効率が良く、処理速度もやや速い! - 辞書(dict)のキーにできる
→リストは辞書のキーにできませんが、タプルはOK!
h3 デメリット
- 中身を変えられない
→変更したい場合はリストに変換する必要あり - 操作がやや制限される
→リストのように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 今後の学習の指針
次に学ぶとよい内容は以下のとおりです!
- リストとの変換方法(list() や tuple())
- 辞書(dict)との連携
- セット(set)との違いと使い分け
- イミュータブルなデータ構造の考え方
Pythonでは、データ構造の特徴を理解して使い分けることがとても重要です。
少しずつ、確実に身につけていきましょう!
他にも知りたいPythonの用語があれば、どんどん聞いてくださいね。
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
