Pythonの基礎 - タプルの作成と操作
概要
タプルとは、リストと同様に様々なデータの要素を格納して管理することができる。
リストと異なるのは、タプルは要素を後で追加・削除・変更することができないというのが特徴である。これをイミュータブルと呼ぶ。
タプルの定義
タプルを作成するには丸括弧()を使用する。この中に、カンマで要素を区切る。
タプル名 = (要素1, 要素2, 要素3, ...)という形になる。また、空のタプルを作成するには、丸括弧()のみで宣言する。
<syntaxhighlight lang="python"> t1 = (1, 3, 5, 3, 7, 5) t2 = 2, 7, 8, 3, 9, 1 t3 = () print(t1) print(t2) print(t3) # 出力 (1, 3, 5, 3, 7, 5) (2, 7, 8, 3, 9, 1) () </source>
タプルも要素にインデックスが割り当てられている。
このインデックスを使用して、要素を抽出・スライスすることができる。
<syntaxhighlight lang="python"> t = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100) print(t[2]) print(t[3:8]) # 出力 30 (40, 50, 60, 70, 80) </source>
要素が1つだけのタプルを作成する場合、後ろにカンマを付けることでタプルと認識する。
<syntaxhighlight lang="python"> x = (200,) y = 300, print(x) print(y) # 出力 (200,) (300,) </source>
タプルのメソッドと操作
タプルのメソッド(index関数 count関数)
タプルには、index関数とcount関数がある。
以下の例では、index関数はタプルの要素にある整数値2が1番目のインデックスに存在し、count関数はタプルの要素に整数値4が3つあることを表す。
<syntaxhighlight lang="python"> t = (1, 2, 4, 6, 8, 5, 2, 7, 4, 4) print(t.index(2)) print(t.count(4)) # 出力 1 3 </source>
タプルの結合
タプルは要素の操作はできないが、タプル同士の結合を行うことができる。
以下の例では、2つのタプルのそれぞれの要素が、1つのタプルの要素として結合されている。
<syntaxhighlight lang="python"> t1 = (1, 2, 3) t2 = (10, 20, 30) print(t1 + t2) # 出力 (1, 2, 3, 10, 20, 30) </source>
また、タプルの要素はリストを持つことができるが、要素としてリストを変更することはできないが、リストの中の要素の変更はすることができる。
<syntaxhighlight lang="python"> t = ([2, 4, 6], [1, 3, 5]) # t[0] = 100 シンタックスエラー t[1][0] = 100 print(t) # 出力 ([2, 4, 6], [100, 3, 5])
tuple関数でtuple型に変換する
tuple関数を使用すると、他のデータ型からタプルを作成することができる。
以下の例では、リストをタプルに変換している。
<syntaxhighlight lang="python"> lang = ["Python", "JavaScript", "Swift"] print(tuple(lang)) # 出力 ('Python', 'JavaScript', 'Swift') </source>
タプルのアンパッキング
タプルを使用すれば、複数の変数に1文で値を渡すことができる。
以下の例では、3つの値を持ったタプルと3つの変数を用意して、次のようにタプルを代入している。
変数のそれぞれの位置とタプルの値が対応しているのが分かる。(これをタプルのアンパックと呼ぶ)
いくつでも対応させることができるが、変数が多くなると可読性が落ちる。
<syntaxhighlight lang="python"> lang = ("Python", "JavaScript", "Swift") Py, JS, Sw = lang print(Py) print(JS) print(Sw) # 出力 'Python' 'JavaScript' 'Swift' </source>