第9回:Pythonプログラミング入門 tuple(タプル)
前回に引き続き、コンテナの紹介をしていきます。
第8回:Pythonプログラミング入門 List(リスト) - 週末SEのメモブログ
リストと違いタプルは好きな順にオブジェクトを保存できます。
そして、タプルは一度作ると格納されている値を変更できない(イミュータブル)であることも違いの一つです。
※格納されている要素が変更できないだけでなく、要素の追加も削除もできません
タプルの宣言は下記の通りです。
test_tuple = tuple()
# または
test_tuple = ()
要素を入れるときは下記のようにカンマで区切ります。
test_tuple = ("TEST", 100, True)
また、もしタプルの要素が一つしかない場合は、下記のように末尾にカンマを付けます。これがないとPythonは数式演算の優先度を決めるかっこと見分けられないためです。
test_tuple = ("TEST",)
タプルにはリストと同じ部分もあります。
それは値の取得時にインデックスが使えること、in演算子が使えることです。
test_tuple = ("TEST", 100, True)
test_tuple[1]
"TEST" in test_tuple
また値が含まれないことを確認するnot in演算子も使えます。
"TEST" not in test_tuple
in演算子、not in演算子を使った場合、上記の例ではそれぞれTrueとFalseを返します。
タプルの意味
リストより使い勝手の悪く見えるタプルの存在意義についてですが、タプルは要素が変わらないことが保証されているので、変わってほしくない値を扱う際に使用します。javaで言うところの final 修飾子に近いですね。
例えば干支や国の地理情報が挙げられるでしょうか。
プログラム内での意図しない変更を回避するためにタプルは使用されます。
またタプルを変更しようとすると下記のような
test_tuple = ("TEST", 100, True)
test_tuple[2] = False
TypeError: 'tuple' object does not support item assignment
例外が発生します。