レッスン21不変のデータをまとめるタプルを使ってみよう
・不変なデータには「タプル」を使う
タプルとは?
例
・不変なデータには「タプル」を使う
タプルとは?
タプル(tuple)は、Pythonの基本的なデータ構造の一つで、以下の特徴を持っています:
- 変更不可:一度作成されると、その中身を後から変更することができません。
- 順序を持つ:リストと同じく、タプルも順序を持つデータ構造です。したがって、インデックス番号を使用して値を取得することができます。
- 異なるデータ型を持つ要素を格納できる:例えば、整数、浮動小数点数、文字列など、異なるタイプのデータを一つのタプル内に保存することができます。
- 括弧 () を使用して定義:タプルは通常、括弧
()
を使用して定義されます。
例
>>> 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
>>>
タプルがエラーが出るのが正しい動きです。
タプルの作成:
pythoneto_tuple = ('子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥')
eto_tuple
という名前のタプルが作成され、12の異なる文字列要素が格納されています。インデックスを使用した要素の取得:
pythoneto_name = eto_tuple[1]
eto_tuple
の2番目の要素(インデックス番号1の要素)をeto_name
という変数に代入しています。結果として、eto_name
には文字列'丑'
が格納されます。タプルの要素を変更しようとする:
pythoneto_tuple[1] = '猫'
ここで、タプル
eto_tuple
の2番目の要素を'猫'
に変更しようと試みています。エラーが発生:
pythonTypeError: 'tuple' object does not support item assignment
タプルは変更不可(immutable)なので、一度作成されたタプルの要素を変更することはできません。そのため、上記の操作はTypeErrorを引き起こします。エラーメッセージは、タプルが要素の代入をサポートしていないことを示しています。
要点として、タプルの主な特徴の一つはその変更不可性であり、このコードはその特徴を明確に示しています。
タプルがエラーが出るのが正しい動きです。
コメント