【Python】タプル(tuple)の使い方を初心者向けに徹底解説!リストとの違いも紹介!

タプルの使い方を初心者向けに解説

※このサイトの記事内では広告を掲載している場合があります。

Pythonの勉強を進めていると、リスト辞書に続いて「タプル(tuple)」という言葉が出てきて、「リストと何が違うの?」「いつ使えばいいの?」と戸惑う方は多いのではないでしょうか。

タプルはリストとよく似ていますが、「中身を変更できない」という大きな特徴を持っています。この記事では、タプルの基本的な作り方から、リストとの違い、実際の現場でよく使われる便利な使い方まで、初心者の方にも分かりやすく解説していきます。サンプルコードを実際に動かしながら、ぜひ手を動かして覚えていきましょう。

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

タプル(tuple)とは、複数の値をひとまとめにして扱うためのデータ型です。複数の値を順番に並べて管理できるという点ではリストとよく似ていますが、最大の違いは「一度作ったら中身を変更できない」という点にあります。リスト自体の操作に不安がある方は、リストに要素を追加する方法の記事もあわせて読んでみてください。

リストは [ ](角カッコ)で作るのに対して、タプルは ( )(丸カッコ)で作ります。変更できないという性質は一見不便に思えるかもしれませんが、「うっかり書き換えられたくないデータ」を安全に管理できるという大きなメリットになります。

タプルの基本的な作り方

それでは、実際にタプルを作ってみましょう。丸カッコの中に、カンマ区切りで値を並べるだけで作成できます。

# タプルを作る
fruits = ("りんご", "みかん", "ぶどう")
print(fruits)
# 実行結果: ('りんご', 'みかん', 'ぶどう')

# カッコを省略しても作れます
numbers = 1, 2, 3
print(numbers)
# 実行結果: (1, 2, 3)

# 要素が1つだけのタプルは、末尾にカンマが必要です
single = ("apple",)
print(type(single))
# 実行結果: <class 'tuple'>

注目してほしいのが、最後の「要素が1つだけのタプル」です。カッコだけでカンマを付けないと、これはただのカッコと見なされて文字列になってしまいます。要素が1つのタプルを作るときは、末尾にカンマを付けるのを忘れないようにしましょう。

タプルの要素にアクセスする

タプルの中身を取り出す方法は、リストと全く同じです。インデックス(要素の番号)を使ってアクセスでき、番号は0から始まります。スライスや繰り返し処理(for文)にもそのまま使えます。

colors = ("赤", "青", "緑")

# インデックスでアクセス(0から始まります)
print(colors[0])    # 実行結果: 赤
print(colors[-1])   # 実行結果: 緑

# スライスで一部を取り出す
print(colors[0:2])  # 実行結果: ('赤', '青')

# 繰り返し処理にも使えます
for color in colors:
    print(color)
# 実行結果:
# 赤
# 青
# 緑

タプルは変更できない(イミュータブル)

タプルの最も重要な特徴が、この「変更できない」という性質です。このような変更できないデータ型のことを、専門用語で「イミュータブル(immutable)」と呼びます。試しにタプルの中身を書き換えようとすると、エラーが発生します。

point = (10, 20)

# 値を変更しようとするとエラーになります
point[0] = 100
# 実行結果: TypeError: 'tuple' object does not support item assignment

このように、タプルは要素の代入や追加・削除ができません。「途中で書き換わってほしくない定数のようなデータ」を扱いたいときに、タプルはとても役立ちます。

タプルの便利な使い方

「変更できないなら、リストだけ使えばいいのでは?」と思うかもしれません。しかし、タプルはPythonの現場で本当によく登場します。代表的な2つの使い方を見てみましょう。

関数から複数の値をまとめて返す

Pythonの関数は、タプルを使うことで複数の値を一度に返すことができます。最小値と最大値を同時に返す関数を作ってみましょう。

def get_min_max(numbers):
    return min(numbers), max(numbers)

result = get_min_max([3, 1, 8, 5])
print(result)
# 実行結果: (1, 8)

アンパック代入で複数の変数に分ける

タプルの中身は、複数の変数にまとめて代入することができます。これを「アンパック代入」と呼びます。同じ仕組みはリストのアンパックでも使えるので、こちらの記事も参考になりますよ。先ほどの関数の戻り値を、そのまま2つの変数で受け取ってみましょう。

# タプルの中身を複数の変数にまとめて代入できます
low, high = get_min_max([3, 1, 8, 5])
print(low)   # 実行結果: 1
print(high)  # 実行結果: 8

# 変数の値の入れ替えも一行でできます
a, b = 1, 2
a, b = b, a
print(a, b)  # 実行結果: 2 1

特に最後の「a, b = b, a」という書き方は、2つの変数の値を入れ替える便利なテクニックとして、実際のコードでもよく使われます。

タプルとリストの使い分け

最後に、タプルとリストをどう使い分ければよいのか、目安をまとめておきます。

  • タプルを使う場面:曜日の名前や座標(x, y)など、後から変更されたくない固定のデータを扱うとき。
  • リストを使う場面:要素の追加・削除・並べ替えなど、中身を頻繁に変更したいとき。
  • 速度面:タプルはリストよりも少しだけ動作が速く、メモリの使用も効率的です。

迷ったときは「あとで変更するかどうか」で判断するとよいでしょう。なお、リストをより便利に扱う書き方としてリスト内包表記もあるので、慣れてきたらぜひチェックしてみてください。変更しないデータならタプル、変更するデータならリスト、と覚えておけば失敗しません。

もっと効率的にPythonを学びたい人へ

ここまでタプルの使い方を解説してきましたが、独学で学習を進めていると「この書き方で合っているのかな?」「エラーの原因が分からない」と、一人で悩んで手が止まってしまうこともありますよね。

そんなときは、プログラミングスクールでプロの講師にマンツーマンで教えてもらうのも一つの方法です。未経験からのPython習得や、エンジニアへの転職サポートに対応したスクールもあり、つまずきやすいポイントをその場で質問しながら効率よく学べます。多くのスクールでは無料カウンセリングも用意されているので、まずは気軽に相談してみると、自分に合った学習プランが見えてきますよ。

※本記事には広告(アフィリエイトリンク)を含みます。

Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】

まとめ

今回は、Pythonのタプル(tuple)について解説しました。最後に要点を振り返っておきましょう。

  • タプルは丸カッコで作る、複数の値をまとめて扱うデータ型です。
  • 最大の特徴は「一度作ると中身を変更できない(イミュータブル)」という点です。
  • 要素が1つだけのタプルは、末尾にカンマを付ける必要があります。
  • 要素へのアクセスやfor文での繰り返しは、リストと同じように使えます。
  • 関数から複数の値を返したり、アンパック代入で変数に分けたりするときに活躍します。
  • 変更しないデータはタプル、変更するデータはリスト、と使い分けましょう。

タプルはリストと並んでPythonの基礎となるデータ型です。ぜひ実際にコードを書いて、その便利さを体感してみてくださいね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA