Pythonにはリストと並んでよく使われる基本的なデータ構造としてタプル(tuple)があります。
タプルはリストと似たように複数のデータをまとめて扱うことができますが、リストと大きく違うのは「一度作成すると中身を変更できない」という点です。 今回は、タプルの定義や作成方法、そして基本的な使い方をIT初心者でもわかりやすい形で解説していきます。
タプルは不変(immutable)なデータ構造です。 不変というのは、一度作ったらその中身を変更できないということです。
リストは新しい要素を追加したり削除したり順序を入れ替えたりできますが、タプルではそれができません。 逆に言えば、タプルを使えば「固定されたデータ」を安全に管理することができます。
例えば、曜日の名前("Monday", "Tuesday", ...)のように決して変わらないデータを扱う場合、タプルを使うのが適しています。 これにより、誤ってデータを上書きしてしまうミスを防ぐことができます。
タプルを作る方法はとてもシンプルです。値をカンマで区切って並べ、丸括弧()
で囲む だけです。
以下のサンプルコードを見てみましょう。
# 空のタプルを作成
empty_tuple = ()
# 1つの要素を持つタプルを作成
single_element_tuple = (42,)
# 複数の要素を持つタプルを作成
multiple_elements_tuple = (1, 2, 3, "Python", 3.14)
print(empty_tuple) # 出力: ()
print(single_element_tuple) # 出力: (42,)
print(multiple_elements_tuple) # 出力: (1, 2, 3, 'Python', 3.14)
この例では、まず empty_tuple という空のタプルを作成しています。 出力は () となり、要素がひとつも含まれていないことがわかります。
次に single_element_tuple という1つの要素を持つタプルを作っていますが、ここで重要なのはカンマを忘れずに書くことです。 丸括弧で42だけを囲むと、それは単なる数値と区別がつきません。そのため (42,) のようにカンマを入れる必要があります。
最後に multiple_elements_tuple では、整数や文字列、浮動小数点数など異なる型のデータをまとめています。 タプルはリストと同じく、異なるデータ型をひとつのまとまりとして保持できるのが特徴です。
タプルは「入れ子構造(ネスト)」にすることもできます。 つまり、タプルの中に別のタプルを入れることが可能です。これにより、より複雑なデータを整理して表現できます。
# タプルのネスト
nested_tuple = (1, 2, (3, 4), (5, 6, (7, 8)))
print(nested_tuple) # 出力: (1, 2, (3, 4), (5, 6, (7, 8)))
このコードでは、nested_tuple というタプルの中にさらにタプルが含まれています。 結果として、階層的な構造をもつデータを簡単に表現できることがわかります。
入れ子構造は、例えば座標やデータのグループをまとめるときなどに活用されます。
タプルの要素にアクセスする方法は、リストと同じでインデックスを使います。 インデックスは0から始まり、負の値を使えば末尾から逆に数えることもできます。
# タプルの要素へのアクセス
example_tuple = (10, 20, 30, 40, 50)
first_element = example_tuple[0] # 10
third_element = example_tuple[2] # 30
last_element = example_tuple[-1] # 50
print(first_element) # 出力: 10
print(third_element) # 出力: 30
print(last_element) # 出力: 50
この例では、example_tuple[0]
で最初の要素 10 を取り出しています。
同じようにexample_tuple[2]
で3番目の要素 30 を取得し、example_tuple[-1]
で最後の要素 50 を取り出しています。
負のインデックスを使えばリストと同じように、後ろから数えて要素にアクセスできることが確認できます。
タプルは、リストとよく似ているものの「一度作成したら変更できない」という重要な特徴を持っています。 これにより、固定データを扱う際に非常に便利で、安全にデータを管理できます。
さらに、ネストを使えば複雑なデータ構造を表現でき、インデックスを使って要素にアクセスする方法もリストと共通しています。
このようにタプルの基本を理解しておくと、Pythonでデータを扱う幅がさらに広がります。次のステップでは、タプルとリストの違いを比較しながら、それぞれをどのような場面で使い分けるべきかを学んでいきましょう。