Python のタプル (tuple)
ここでは Python のタプル (tuple) についてご説明します。
Python のタプル (tuple) は、変更できないリスト (list) のようなものです。
タプルは一度定義すると、要素の追加、削除、並べ替え、値の変更などができず、それらの処理をしようとするとエラーになります。
プログラムを書く際に、変更されるべきではないデータのセットを保存しておくのに使います。
Python のリストは、角括弧[]を使って定義しましたが、タプルは丸括弧()を使い、それぞれの要素はカンマで区切ります。
names = ("Tanaka", "Suzuki", "Sato", "Yamada")
あまりないことかもしれませんが、リストは大丈夫なのですが、要素がひとつのタプルを定義したい時は、値の後ろにカンマをつけないと タプルになりません。
names_list = ["Tanaka"]
print(type(names_list))
names_not_tuple = ("Tanaka")
print(type(names_not_tuple))
names_tuple = ("Tanaka",)
print(type(names_tuple))
実行結果は次の通りです。カンマをつけなかった names_not_tuple のタイプが str になっていますね。
要素へのアクセスや、要素数の取得、値の出現回数の取得、値が最初に出現する位置の取得はリストと全く同じです。
names = ("Tanaka", "Suzuki", "Sato", "Yamada")
print(names[0]) # -> Tanaka
print(len(names)) # -> 4
print(names.count("Sato")) # -> 1
print(names.index("Sato")) # -> 2
len()、count()、index() の説明は「Python のリスト (list) - 要素数と値の出現位置」をごらんください。
タプルには copy() メソッドも extend() メソッドもありませんが、+ 演算子によるタプルの結合は可能です。
names1 = ("Tanaka", "Suzuki", "Sato", "Yamada")
names2 = ("Sakai", "Kimura", "Ishida")
names3 = names1 + names2
print(names3)
実行結果は次のようになり、names1 と names2 が結合されたタプルが names3 に代入されていますね。
('Tanaka', 'Suzuki', 'Sato', 'Yamada', 'Sakai', 'Kimura', 'Ishida')
以上、Python のタプルについてご説明しました。