レッスン21不変のデータをまとめるタプルを使ってみよう
・不変なデータには「タプル」を使う
タプルとは?

タプル(tuple)は、Pythonの基本的なデータ構造の一つで、以下の特徴を持っています:

  1. 変更不可:一度作成されると、その中身を後から変更することができません。
  2. 順序を持つ:リストと同じく、タプルも順序を持つデータ構造です。したがって、インデックス番号を使用して値を取得することができます。
  3. 異なるデータ型を持つ要素を格納できる:例えば、整数、浮動小数点数、文字列など、異なるタイプのデータを一つのタプル内に保存することができます。
  4. 括弧 () を使用して定義:タプルは通常、括弧 () を使用して定義されます。
・タプルの使い方

>>> eto_tuple = ('子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥')
>>> eto_name = eto_tuple[1]
>>> eto_tuple[1] = '猫'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
  1. タプルの作成

    python
    eto_tuple = ('子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥')

    eto_tupleという名前のタプルが作成され、12の異なる文字列要素が格納されています。

  2. インデックスを使用した要素の取得

    python
    eto_name = eto_tuple[1]

    eto_tupleの2番目の要素(インデックス番号1の要素)をeto_nameという変数に代入しています。結果として、eto_nameには文字列'丑'が格納されます。

  3. タプルの要素を変更しようとする

    python
    eto_tuple[1] = '猫'

    ここで、タプルeto_tupleの2番目の要素を'猫'に変更しようと試みています。

  4. エラーが発生

    python
    TypeError: 'tuple' object does not support item assignment

    タプルは変更不可(immutable)なので、一度作成されたタプルの要素を変更することはできません。そのため、上記の操作はTypeErrorを引き起こします。エラーメッセージは、タプルが要素の代入をサポートしていないことを示しています。

要点として、タプルの主な特徴の一つはその変更不可性であり、このコードはその特徴を明確に示しています。



タプルがエラーが出るのが正しい動きです。