Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのタプル(tuple)データ型とは?基本と使い方を徹底解説

タプル(tuple)とは

タプルは、リストとよく似たもう一つのシーケンス型(シーケンスデータ型)です。タプルは、カンマで区切られた複数の値によって構成されます。リストとの大きな違いは、タプルが丸括弧 ( ) で囲まれるという点です。

リストとタプルの主な違い

リストとタプルの違いは、次のようにまとめられます。

  • リストは角括弧 [ ] で囲み、要素やサイズを後から変更できる
  • タプルは丸括弧 ( ) で囲み、一度作成すると更新できない

そのため、タプルは「読み取り専用(read-only)のリスト」と考えることができます。変更されない固定データを扱いたい場合に、タプルは非常に便利です。

タプルの基本的な使い方(サンプルコード)

以下は、タプルの作成と各種操作を行う例です。

#!/usr/bin/python
tuple = ('abcd', 786, 2.23, 'john', 70.2)
tinytuple = (123, 'john')

print(tuple)             # タプル全体を表示
print(tuple[0])          # 最初の要素を表示
print(tuple[1:3])        # 2番目〜3番目の要素を表示(スライス)
print(tuple[2:])         # 3番目以降の要素を表示
print(tinytuple * 2)     # タプルを2回繰り返して表示
print(tuple + tinytuple) # 2つのタプルを連結して表示

実行結果

上記のコードを実行すると、次のような出力が得られます。

('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')

タプルは更新できない

次のコードは、タプルに対して値を更新しようとしているため不正な操作となります。一方、リストの場合は同じ操作でも問題なく実行できます。

#!/usr/bin/python
tuple = ('abcd', 786, 2.23, 'john', 70.2)
list = ['abcd', 786, 2.23, 'john', 70.2]

tuple[2] = 1000  # タプルへの代入は不可(TypeErrorが発生)
list[2] = 1000   # リストへの代入は有効

このように、タプルにインデックスを使って新しい値を代入しようとすると、Pythonでは TypeError: 'tuple' object does not support item assignment というエラーが発生します。データの意図しない変更を防ぎたい場合には、リストではなくタプルを使用するのが適切です。

  1. Pythonのシーケンス型とは?主な種類と特徴をわかりやすく解説

    シーケンス型とは何か Pythonにおけるシーケンス(sequence)型とは、複数の値を順序付けて整理し、効率的に格納できるデータ型の総称です。代表的なシーケンス型には、文字列(str)、リスト(list)、タプル(tuple)、bytearray、rangeオブジェクトなどがあります。 一方で、辞書(dict)やセット(set)は順序を持たないデータを扱うコンテナであり、シーケンス型には分類されません。この違いを理解しておくことは、Pythonのデータ構造を使いこなす上で非常に重要です。 主なシーケンス型の特徴 Python公式ドキュメントによると、各シーケンス型は以下のような特徴を持っ

  2. Pythonのデータ型と型変換をわかりやすく解説

    この記事では、Pythonにおける主要なデータ型の種類と、それぞれの使い方、そしてデータ型同士を変換する方法について詳しく解説します。 Pythonの組み込みデータ型一覧 Pythonでは変数を作成・宣言する際に、さまざまなデータ型を持たせることができます。Pythonには以下のような組み込みデータ型が用意されています。 str(文字列) int、float、complex(数値) list、tuple(シーケンス) dict(辞書) set(集合) bool(ブール値) bytes、bytearray(バイナリ) それでは、各データ型の特徴と作成方法を順番に見ていきましょう。 文字列型: