【Python】tuple(タプル)を使って要素を取得する!リストとの違いについて解説!

タプルはリストとよく似ており、リストは角かっこ「[]」の中にカンマ区切りで要素を並べて格納しますが、タプルでは角かっこ「()」の中にカンマ区切りで要素を並べて格納します。

しかし、リストと似ているからといって同じように扱うのは危険です。
リストで操作できても、タプルでは操作できないことがあります。

今回はタプルの以下の内容について解説します。
タプルとは?
リストと同じようにタプルを扱ってみた場合
タプルで使用できるメソッド
リストとタプルの違い

タプル(tuple)とは

タプルとは一度セットした要素を書き換えることができない(イミュータブルな)リストのことをいいます。

タプルの書き方

datetimeの構文は下記となります。

()の中で要素ごとにカンマ(,)で区切って書くことで作成します。
また、()を省略して直接、要素を書いて作成することもできます。

タプルを使ったサンプルコード

出力結果

(‘ライオン’, ‘ゴリラ’, ‘くま’, ‘キリン’, ‘ぞう’, ‘とら’, ‘しまうま’)
(1, 2, 3, 4, 5, 6, 7)

リストと同じようにタプルを扱ってみた場合

リストと同じようにタプルを扱ってみます。

要素を追加する

タプルは一度作ると変更ができませんが、別のタプルを作成し、そのタプルを連結をすることで要素を追加することができます。

出力結果

(‘ライオン’, ‘ゴリラ’, ‘くま’, ‘キリン’, ‘ぞう’, ‘とら’, ‘しまうま’, ‘猿’, ‘かば’)
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

要素を変更する

タプルは一度作ると変更ができないため、要素を変更することはできません。
要素を変更しようとするとエラーとなります。

例1

出力結果

TypeError: ‘tuple’ object does not support item assignment

要素を削除する

先ほども言いましたがタプルは一度作ると変更ができません。
しかし、スライスを使って部分的に取り出し、要素を削除したようなタプルを作ることはできます。

出力結果

(‘ゴリラ’, ‘くま’, ‘キリン’)
(2, 3, 4, 5)

スライスすることで要素を削除したようにタプルを表示することができます。

タプルの応用的な使い方

タプルの応用的な使い方を紹介していきます。

タプルの要素を検索する

タプルの要素を検索するにはin演算子を使用します。
in演算子を使うことで、タプルの要素を検索することができ、trueかsfalseを返します。

出力結果

False
True

タプル同士を比較する

タプル同士を比較する比較演算子(==)を使用します。
比較演算子(==)を使用することで、タプルのすべての要素を比較することができ、trueかfalseを返します。

出力結果

True
False

for文を使用してタプルの要素を取得する

for文を使用してタプルの要素を取得することができます。

出力結果

ライオン
ゴリラ
くま
キリン
ぞう
とら
しまうま
1
2
3
4
5
6
7

タプルの中にタプルを追加する

タプルの中にタプルを追加するには多重になっているタプルに+演算子で連結することで追加することができます。

出力結果

((‘ライオン’, ‘ゴリラ’, ‘くま’, ‘キリン’), (‘ぞう’, ‘とら’, ‘しまうま’), 1, 2, 3, 4, 5, 6, 7)

タプルで使用できるメソッド

要素の最大値を取得する

要素の最大値を取得するにはmax()を使用します。
数字は数字が一番大きい値を取得しますが、文字列の場合はア〜ン、あ〜ん、A〜Z、a~zの順に最大値を取得するようになります。

出力結果

ライオン
7

要素の最小値を取得する

要素の最小値を取得するにはmin()を使用します。
数字は数字が一番小さい値を取得しますが、文字列の場合はa~z、A〜Z、あ〜ん、ア〜ンの順に最小値を取得するようになります。

出力結果

くま
1

要素の数をカウントする

要素の数をカウントするにはlen()を使用します。

出力結果

5
7

リストとタプルの違い

これがリストとタプルの違いは「リストは変更ができるが、タプルは変更ができない」ということです。
要素を追加・変更・削除する変更ができるリストに対して、タプルは一度セットした要素を追加・変更・削除することができません。

リストについて詳しく知りたい場合は【【Python】リスト(list)の使い方について分かりやすく解説!サンプルコード付き!をご参照ください。

例えば、リスト、タプルの中にある要素を変更してみます。

リストの例

出力結果

[‘かば’, ‘ゴリラ’, ‘くま’, ‘キリン’, ‘しまうま’]

リストでは一度定義したリストの中の要素を変更することができます。
続いて、タプルで行ってみると

タプルの例

出力結果

TypeError: ‘tuple’ object does not support item assignment

このように一度定義したタプルの要素を操作することができません。
しかし、要素の値を間違えて書き換えられる危険がないことはタプルのメリットです。
また、リストと比べて、パフォーマンスの点ではタプルの方が有利となっています。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し