クルトンのプログラミング教室

Pythonの使い方やPythonを使った競技プログラミングの解法などを解説しています。

tuple(タプル)の使い方【Python】

こんにちは、クルトンです!

この記事ではtuple(タプル)の使い方を解説します。

tupleとは

tupleは複数の要素を扱うオブジェクトの一つです。

tupleの使い方はほとんどlistと変わりません。

listの使い方は下の記事で説明しています。

kuruton.hatenablog.com


listとtupleの違いは、tupleはイミュータブル、つまり要素の変更ができないということです。

では早速、具体的な使い方を見ていきましょう!


tupleの使い方

(要素0, 要素1, 要素2, ...)

このように、tupleは丸括弧「()」の間に要素をコンマで区切って並べることで定義できます。


要素の取り出し方

tupleの要素には、インデックスと呼ばれる番号が割り振られています。

この番号を指定することで、tupleの要素を取り出すことができます。

タプル名[インデックス番号]

また、インデックスは0から始まっています。(1からではないということに注意しましょう!)


コード

T = ('a', 'b', 'c', 'd', 'e')		#インデックス番号は(0, 1, 2, 3, 4)となっている

print(T[0])
print(T[3])

出力結果

a
d

インデックスを負の値に指定したときは、後ろから-1, -2....となります。


コード

T = ('a', 'b', 'c', 'd', 'e')		#インデックス番号は(-5, -4, -3, -2, -1)となっている

print(T[-1])
print(T[-3])

出力結果

e
c

スライスを使った要素の取り出し方

タプル名[最初の要素のインデックス番号:最初の要素のインデックス番号 + 1]

では具体的な使い方を見てみましょう。


コード

T = ('a', 'b', 'c', 'd', 'e')

print(T[1:3])

出力結果

('b', 'c')

また、左側の数字を省略することで最初の要素を、右側の数字を省略することで最後の要素を指定することができます。


コード

T = ('a', 'b', 'c', 'd', 'e')

print(T[:3])
print(T[3:])

出力結果

('a', 'b', 'c')
('d', 'e')

タプル同士の結合

  1. 演算子をつかうことで、タプル同士を結合することができます。


演算子を使ったコード
T1 = ('a', 'b')
T2 = ('c', 'd')
T1 += T2

print(T1)
|

出力結果

('a', 'b', 'c', 'd')

要素の追加・挿入・変更・削除

tupleはイミュータブルなオブジェクトなので、要素の追加・挿入・変更・削除を行うことはできません。

tupleに要素の追加・挿入・変更・削除を行うためには、一度list関数を使ってlistにする必要があります。

そして要素の追加・挿入・変更・削除を行ってから、tuple関数を使ってtupleに戻せばよいです。


コード

T = ('a', 'b', 'c')

T = list(T)

print(T)

#ここでlistに対する操作を行う

T = tuple(T)

print(T)

出力結果

['a', 'b', 'c']
('a', 'b', 'c')


listに対する要素の追加・挿入・変更・削除は下の記事で説明しています。

kuruton.hatenablog.com


tupleを使う利点(リストとの使い分け)

ほとんどの場合ではリストを使えばよいので、タプルを使う機会はほとんどありません。

ではどのようなときにタプルを使うのでしょうか?


リストは要素を変えることができる、ミュータブルなオブジェクトなので、dictionary(辞書)のキーや、setの要素にすることができません。


リストを使った辞書

d = {['a', 'b', 'c']: 0}

print(d)

出力結果

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-75cdc7c6eece> in <module>
----> 1 d = {['a', 'b', 'c']: 0}
      2 
      3 print(d)

TypeError: unhashable type: 'list'


リストを使ったセット

S = {['a', 'b', 'c']}

print(S)

出力結果

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-efcc88ecf9e4> in <module>
----> 1 S = {['a', 'b', 'c']}
      2 
      3 print(S)

TypeError: unhashable type: 'list'


一方でタプルは要素を変えることができません。そのためリストとは違い、dictionary(辞書)のキーや、setの要素にすることができます。


タプルを使った辞書とセット

d = {('a', 'b', 'c'): 0}
S = {('a', 'b', 'c')}

print(d)

print(S)

出力結果

{('a', 'b', 'c'): 0}
{('a', 'b', 'c')}


このように、タプルはdictionary(辞書)のキーや、setの要素として使われます。



今回はtupleの使い方について解説しました。

ではまたお会いしましょう!さようなら~