ここでは、タプルの基本的な使い方と使用上の注意点について説明します。タプルは一つの名前で複数の値を管理することができます。タプルはCやJavaの配列と同じように扱えますが、要素の値を変更することができない点でリストと異なります。
タプルの作り方
タプルは複数の値を一つの名前でまとめて管理することができ便利です。タプルは次のように作ります。リストを作るときは要素を[]で囲むのに対し、タプルでは()で囲みます。
1 |
person = ("Taro", "Jiro", "Hanako") |
personという名前で3つの値を要素としてもつタプルが作られています。このとき、Taro、Jiro、Hanakoをタプルの要素と呼び、各要素はタプルの添字番号を使って表します。例えば、person[0]はTaroを、person[1]はJiroを表します。添字はリストと同様に[]で囲みます。添字は0から始まる点に注意してください。
1 2 |
print person # ('Taro', 'Jiro', 'Hanako') print person[0] #Taro |
このように、タプルを作る書式は以下のようになります。
1 |
タプル名 = (要素, 要素, ...) |
タプルの各要素はタプル名と添字を使って表します。
1 |
タプル名[添字] |
タプルを使う上での注意点
リストとは異なり、タプルは要素を書き換えることができないため注意が必要です。次の例は、タプルを書き換えようとして失敗しています。後から変更することがないものはタプルに、変更する可能性があるものはリストにするとよいでしょう。
1 2 |
person = ("Taro", "Jiro", "Hanako") person[2] = "Saburo" # TypeError |
タプルは変更不可能なため、要素を新しく追加したり削除することはできません。
また、添字には負の数を指定することができ、その場合タプルの末尾要素から順番を数えます。上記の例では、person[-1]は末尾のHanakoを表します。
タプルの要素には、様々なデータ型を混在させることができます。要素に式を記述することもできます。
1 |
tuple = (1, 2, "x", 5-3) |
タプルの要素としてタプルを指定することできます。
1 |
tuple = (("Taro", "Jiro", "Hanako"), ("male", "male", "female")) |