Python チュートリアル - データ型タプル
このセクションでは、タプルを作成および使用する方法を紹介します。
タプルはリストに似ていますが、タプルは不変ですがリストは可変であるという違いがあります。
リストに対するタプルの利点
- 要素が異なるデータ型の場合、タプルが主に使用されますが、要素が同じデータ型の場合はリストが使用されます。
- タプルを更新できないため、タプルの走査は高速です。
- タプルの不変要素を辞書のキーとして使用できます。これはリストではできません。
- タプルは不変であるため、データの保護を保証します。
タプルを作成する
括弧 ()
を使用して Python タプルを定義し、要素をコンマ 、
で区切ることができます。タプルには、任意のデータ型の要素を含めることができます。
>>> x = (3, 'pink', 3+8j)
>>> print('x[0] =', x[0])
x[0] = 3
>>> print('x[0:2] =', x[0:2])
x[0:2] = (3, 'pink')
>>> x[0] = 4
TypeError: 'tuple' object does not support item assignment
タプルに含まれる要素が 1つだけの場合、たとえば、その要素が文字列データ型の場合、タプルはタプルとは見なされず、文字列と見なされます。以下の例を参照してください。
>>> x = ("Python")
>>> print(type(x))
<class 'str'>
ここで、x
のデータ型が tuple
ではなく str
であることがわかります。タプルにするために、末尾のコンマが次のように使用されます。
>>> x = "Python",
>>> print(type(x))
<class 'tuple'>
タプル要素にアクセスする
タプルの要素には、次のいずれかの方法を使用してアクセスできます。
索引
タプルの要素にアクセスするには、インデックス演算子 []
を使用できます。タプルのインデックスは 0 から始まります。インデックスが範囲内にない場合(タプル内のそのインデックスで定義されていないアイテム)、IndexError
が発生します。ここで、インデックスは整数でなければならないことに注意する必要があります。そうしないと、TypeError
が発生します。
>>> x = (3, 'pink', 3+8j)
>>> print(x[0])
3
>>> print(x[2])
(3+8j)
負のインデックス
Python リストと同じように、負のインデックスを使用してタプル要素にアクセスできます。
>>> l = (2, 4, 6, 8, 10)
>>> print(l[-1])
10
>>> print(l[-2])
8
>>> print(l[-3])
6
スライス
スライス演算子 :
は、タプルから要素の範囲を抽出するために使用されます。
>>> l = (2, 4, 6, 8, 10)
>>> print(l[1:3]) #prints from location 1 to 3
(4, 6)
>>> print(l[:2]) #prints from the beginning to location 2
(2, 4)
>>> print(l[2:]) #prints elements from location 2 onwards
(6, 8, 10)
>>> print(l[:]) #prints entire list
(2, 4, 6, 8, 10)
タプルを連結する
+
演算子を使用して、2つのタプルを連結できます。
>>> l = (2, 4, 6, 8, 10)
>>> print(l + (12, 14, 16)
(2, 4, 6, 8, 10, 12, 14, 16)
タプルを削除する
タプルは不変であるため、タプルの要素を削除できません。ただし、del
キーワードを使用してタプル全体を削除できます。
l = (2, 4, 6, 8, 10)
del l
Python タプルメソッド
タプルは不変なので、タプルには 2つのメソッドしかありません。
メソッド | 説明 |
---|---|
count(a) |
は、a に等しい要素数を返すために使用されます。 |
index(a) |
a に等しい最初の要素のインデックスを返すために使用されます |
タプル組み込み関数:
以下は、さまざまなタスクを実行するためのタプル
に適用可能なタプル組み込み関数です。
関数 | 説明 |
---|---|
all() |
タプルのすべての要素が True の場合、True を返します。タプルが空の場合も True を返します。 |
any() |
タプルの要素のいずれかが True の場合、True を返します。タプルが空の場合、False を返します。 |
enumerate() |
タプルのすべての要素のインデックスと値をタプルとして返します。enumerate オブジェクトを返します。 |
len() |
タプル内のアイテムの数またはタプルの長さを返します。 |
tuple() |
シーケンス(タプル、セット、文字列、辞書)をタプルに変換します。 |
max() |
タプルの最大数を返します。 |
min() |
タプルの最小数を返します。 |
sorted() |
ソートされたタプルを返します。 |
sum() |
タプルのすべての要素の合計を返します。 |
タプルメンバーシップチェック
in
キーワードは、アイテムがタプルのメンバーであるかどうかをチェックします。以下のコード例をご覧ください。
>>> l = (2, 4, 6, 8, 10)
>>> print(5 in l)
False
>>> print(2 in l
True
タプルを繰り返す
for
ループを使用して、タプルを反復処理できます。
l = (2, 4, 6, 8, 10)
for i in l:
print(i)
2
4
6
8
10