CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
みなさん、こんにちは。前回からコレクション型のデータ型について解説しています。前回はリスト型について解説しましたが、今回は別の種類のコレクションタイプのデータ型、タプル型について解説します。
タプル型は、前回のリスト型と同じように、複数の値をまとめて扱うことができるコレクションの型です。タプルに含まれる要素としては、数値型のデータ(整数や小数など)、文字列型のデータ、コレクションのデータなどが使用できます。タプルの要素も、タプル内での順番を持ちます。
タプル型はリスト型と似た特徴を持っていますが、リストがミュータブル(変更可能)であるのに対し、タプルはイミュータブル(変更不可)です。一度定義された値を変更できない点が異なります。この点はリスト型と大きく異なる特徴であり、値を定義してから変更する必要がある場合には、リスト型を使用する必要があります。したがって、タプルでは、リスト型で紹介した append() 関数を使用して要素の追加や、pop() 関数を使用して要素の削除はできません。タプルは、そのイミュータブルな性質を活かして、関数の戻り値や初期設定値の定義など、変更されては困る変数に使用されます。
新しいタプルを定義するには、tuple() 関数を使うか、括弧( ( ) )を使います。
>>> tuple1 = tuple()
>>> tuple1
()
>>> tuple2 = ()
>>> tuple2
()
要素を含んだ状態でタプルを作る場合は、要素をカンマ(,)で区切って並べます。例えば、次のようにします。このとき、右辺は括弧で括らなくてもタプルとして定義できます。
>>> tuple3 = ('abc', 'def', 123, 456)
>>> tuple3
('abc', 'def', 123, 456)
なお、要素が1つしかないタプルを作成するには、カンマを付ける必要があります。
>>> tuple4 = (789)
>>> tuple4
789
>>> tuple4 = (789, )
>>> tuple4
(789,)
タプルから要素を取り出す方法を見てみましょう。以下のタプルについて考えます。
>>> tuple3
('abc', 'def', 123, 456)
タプルもリストと同様に、要素に順番があり、添字表記([])にインデックスを指定することで特定の要素を取り出すことができます。インデックスの考え方もリストと同じです。インデックスは0から始まるため、0を指定すると最初の要素を取り出せます。インデックスを指定するには、角括弧の中に数字を入れます。
>>> tuple3[0]
'abc'
>>> tuple3[-1]
456
また、リストと同様に、スライスを使うことができます。スライスの指定方法もリストと同じで、数値をコロン(:)で区切って指定します。例えば、次のようになります。
>>> tuple3[1:3]
('def', 123)
>>> tuple3[:3]
('abc', 'def', 123)
>>> tuple3[2:]
(123, 456
ただし、タプルはイミュータブルなので、取り出した要素に値を代入することはできません。
>>> tuple3[1] = 'ghi'
Traceback (most recent call last):
File "", line 1, in
TypeError: 'tuple' object does not support item assignment
同様に、append() メソッドや insert() メソッド、pop() メソッドなどを使用することもできません。これらを使用するとエラーが発生します。
>>> tuple3.append(789)
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'tuple' object has no attribute 'append'
タプル同士は連結できるため、新しいタプルを作ることで要素の追加のような振る舞いができます。ただし、連結するのもタプル型である必要があります。そのため、要素を1つ追加したい場合は注意が必要です。
>>> tuple5 = tuple3 + (789,)
>>> tuple5
('abc', 'def', 123, 456, 789)
>>> tuple5 = tuple3 + (789)
Traceback (most recent call last):
File "", line 1, in
TypeError: can only concatenate tuple (not "int") to tuple
今回は、Pythonのデータ型であるタプル型について解説しました。タプル型は、複数の要素を一度に扱うことができるため、データの処理や操作に非常に便利です。基本的な使い方や特徴について説明しましたが、まだまだ紹介しきれていない機能や応用方法がたくさんあります。
さて次回は、Pythonのデータ型の中でも非常に重要な役割を果たす辞書型の基本的な使い方や応用方法について説明します。お楽しみに!
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes