Pythonのタプルの扱い方について解説します。
Pythonではタプルと似た機能にリストがありますが、リストとの違いは後から要素の追加や削除がタプルでは出来ない点です。
ただし、タプル内の要素にリストを入れることは可能で、そのリストは後から変更することができます。また、タプル同士の結合も可能です。
タプルを作成する
タプル型は ( ) の間に、複数の要素をカンマ(,)で区切って定義します。書式は次のとおりです。
1 2 3 | tuple_temp = (10, 20, 30, 40, 50) print(tuple_temp) # (10, 20, 30, 40, 50) |
タプルの要素には他のタプルやリストを格納することができます。
1 2 3 | tuple_temp = (10, (20, 30), 40, 50) print(tuple_temp) # (10, (20, 30), 40, 50) |
タプルから要素を取得する
タプルの要素にはインデックスが割り当てられています。タプルに対してインデックスを指定することで対応した要素を取得することができます。インデックスは最初の要素が0で、それ移行は1, 2と1ずつ増加していきます。
1 2 3 4 5 6 | tuple_temp = (10, 20, 30, 40, 50) print(tuple_temp[0]) # 10 print(tuple_temp[2]) # 30 |
インデックスは負の値も指定することができます。
1 2 | print(tuple_temp[-2]) # 40 |
範囲を指定して複数の値を取得することもできます。開始インデックス以上、終了インデックス未満の要素までを取得できます。この場合も負の値を指定できます。
1 2 3 4 5 | print(tuple_temp[0:2]) # (10, 20) print(tuple_temp[-3:-1]) # (30, 40) |
タプル内のリストを操作する
辞書内リストの要素を取得する場合は、以下のように指定します。
また、タプルの要素は変更不可ですが、タプル内リストの要素は後から変更が可能です。
以下の例ではタプルの2番目の要素にリストを格納し、後からリストの1番目の要素を変更しています。
1 2 3 4 5 6 7 | tuple_temp = (10, [20, 30], 40, 50) print(tuple_temp) # (10, [20, 30], 40, 50) tuple_temp[1][0] = 100 print(tuple_temp) # (10, [100, 30], 40, 50) |
tuple_temp[1]
でタプルの2番目の要素であるリスト[20, 30]
を取り出し、さらに[0]
でリストの1番目の要素を指定して、100を代入しています。
次にタプル内リストに要素を追加してみます。
要素を追加するには、リストの操作と同様にappend()
メソッドを使用します。
1 2 3 | tuple_temp[1].append(200) print(tuple_temp) # (10, [100, 30, 200], 40, 50) |
・関連記事:リスト(配列)- リストに要素を追加する
タプルの要素数を調べる
タプルの要素数を調べる場合は、len()
メソッドを使用します。
1 2 3 4 | tuple_temp = (10, 20, 30, 40, 50) len(tuple_temp) # 5 |
タプルの結合
タプルに対して + 演算子を使用すると、別のタプルと結合して新しいタプルを作成することができます。
1 2 3 4 5 6 | tuple1 = (10, 20, 30) tuple2 = (40, 50) tuple3 = tuple1 + tuple2 print(tuple3) # (10, 20, 30, 40, 50) |
タプルの比較
タプルは、数値や文字列と同じように、比較演算子を使って他のタプルと値を比較できます。
利用できる演算子は==
または !=
です。
・参考記事:演算子-比較演算子
==
でタプルを比較する場合、要素の内容が同じであれば True
違う場合は False
を返します。
1 2 3 4 5 6 7 8 9 | tuple1 = (10, 20, 30) tuple2 = (10, 20, 30) print(tuple1 == tuple2) # True tuple1 = (10, 20, 30) tuple2 = (10, 20) print(tuple1 == tuple2) # False |
!=
でタプルを比較する場合、要素の内容が同じであれば False
違う場合は True
を返します。
1 2 3 4 5 6 7 8 9 | tuple1 = (10, 20, 30) tuple2 = (10, 20, 30) print(tuple1 != tuple2) # False tuple1 = (10, 20, 30) tuple2 = (10, 20) print(tuple1 != tuple2) # True |
Pythonのタプルについて解説しました。