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 のタプルについてご説明しました。

© 2024 やさしい Python 入門