名前付きタプル
辞書型のようにフィールド名を用いてアクセス要素を指定するタプル。collectionsライブラリに含まれる。
タプルとの比較
類似点
いったん格納したフィールドの値を変更することはできない。
いったん生成したインスタンスに新たなフィールドを追加することはできない。
相違点
タプルに含まれる要素へのアクセスには添字を用いるのに対して、文字列で構成されたフィールド名を用いる。
辞書との比較
類似点
フィールドに対して名前を付けるので、添字のような整数値を用いる場合と
相違点
タプルであるので、フィールドの追加や変更はできない。
辞書型のキーには文字列や数値(整数型、浮動小数点型)が使えるのに対して、フィールド名には文字列のみが利用できる。
フィールドの指定には「.」演算子を利用する。角括弧が不要なので簡潔に記述できる。
code:python
from collections import namedtuple
Hoge = namedtuple('Foo', ('a', 'b', 'c'))
x = Hoge(1, 2, 3)
1. Foo型の名前付きタプルを宣言し、そのオブジェクトを変数Hogeで指した。
2. Foo型のインスタンスを生成し、それを変数xで指した。
フィールドにはカンマ演算子でアクセスできる。辞書型のように角括弧は不要である。
code:python
print(x.a)
タプルはイミュータブルなので、ひとたび生成したインスタンスの中身を書き換えることができない。
code:python
x.a = 4
x.new = 999
collections