こんにちは!ぼりたそです。今回はPythonのタプルについてまとめてみました。
この記事は以下のポイントをまとめています。
- タプルとは?
- タプルの作成
- 要素の追加
- 要素の削除
- 要素の並び替え
タプルはリストと同様に複数のデータ(要素)を格納できるデータ型です。しかし、機能としてはリストと異なり、Pythonを学ぶ上で重要となってきますので、ぜひみていって下さい。
タプルとは?
タプルとはデータ型の一つであり、要素を複数持つことができます。構造としては要素を()で括った形式になり、(1,2,3,4,5)などがタプルに該当します。これだけ聞くとリストと変わらないように聞こえますが、リストとの大きな違いとしてタプルは要素の変更ができないという点が挙げられます。なので、変更したくないデータに使用されます。

今しがた、タプルは要素の変更ができないと言いましたが、正確に言えば頑張れば変更することもできます。今回はタプルの要素変更などについて以降解説します。
タプルの作成
タプルを作成するには主に以下二つの方法があります。
- 要素を()で囲って変数に代入
- 要素の羅列を変数に代入
要素を()で囲って変数に代入
タプルを作成する方法として要素を()で囲って変数に代入する方法があります。
t = (1,2,3,4,5)
print(type(t))
#出力結果
#tuple要素の羅列を変数に代入
タプルを作成する方法として要素の羅列を変数に代入する方法もあります。
t = 1,2,3,4,5
print(type(t))
#出力結果
#tuple要素の追加
タプルは要素の追加はできないと記載しましたが、以下二つの手法を使えば可能ではあります。
- タプルの連結
- リスト変換後に追加
タプルの連結
タプルの連結は単純にタプル同士を+の演算子で繋ぎ合わせるだけです。
t1 = (1,2,3,4,5)
t2 = (6,7,8,9,10)
t = t1 + t2
print(t)
#出力結果
#(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
リスト変換後に追加
タプルに要素を追加する方法としてはリスト変換後に追加する方法があります。
t1 = (1,2,3,4,5)
l = list(t1)
l += [6,7,8,9,10] #複合代入演算でlに[6,7,8,9,10]を連結
t = tuple(l)
print(t)
#出力結果
#(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)要素の削除
タプルに要素を削除するメソッドはありませんが、スライスを使用することで擬似的に削除することができます。
スライスの使用
スライスを使用して新たにタプルを定義することで擬似的に要素を削除することができます。
t1 = (1,10,100,1000,10000)
t = t1[:3]
print(t)
#出力結果
#(1,10,100)要素の並び替え
タプルの要素を並び替える方法としてはsortedメソッドを使用する方法が挙げられます。
sortedメソッド
sortedメソッドはsortメソッドと違い、非破壊的なメソッドとなっています。このsortedメソッドを使用するとリスト型になってしまうので、再度タプルに変換する必要があります。
t1 = (8,5,7,9,1,3)
l = sorted(t1, reverse=False)
t = tuple(l)
print(t)
#出力結果
#(1,3,5,7,8,9)Pythonのタプルを問題演習で身につけたい方へ
ここまで、Pythonのタプルについて、
- タプルの作成
- タプル同士の連結
- リストへの変換
- スライスを使った値の取り出し
- 要素の並び替え
などを紹介してきました。
タプルはリストとよく似ていますが、作成したあとに要素を直接変更できないという大きな特徴があります。
そのため、
「リストとの違いは分かったけど、どんなときにタプルを使えばいいの?」
「実際にコードを書こうとすると、リストとタプルの使い分けで迷ってしまう」
という方もいるのではないでしょうか。
Pythonの基本文法を実際にコードを書きながら練習したい方向けに、Kindle書籍**『Python 文法演習100問』**を出版しました。
本書では、今回紹介したタプルについても1つの章を設け、
- タプルの作成
- 要素の取得
- リストとの違い
- リストに変換して内容を変更する方法
- タプルのアンパック
- タプルを使ったデータの管理
などを、問題を解きながら学べるようにしています。
もちろん、タプルだけではありません。
- 数値・文字列
- リスト
- 辞書
- 集合
- 条件分岐
- 繰り返し処理
- 関数
- クラス
まで、Pythonの基本文法を全100問の演習形式で扱っています。
各問題では、最初に実行結果を確認し、
「この結果になるコードをどのように書けばよいか」
を自分で考えます。
説明を読むだけではなく、実際にコードを書くことで、Pythonを**「知っている」状態から「自分で使える」状態へ進むこと**を目指した問題集です。
タプルのように、リストと似ているため違いが分かりにくい文法も、実際に両方を使ってコードを書くことで理解しやすくなります。
「Pythonのデータ型を一通り勉強したので、問題を解きながら整理したい」
「条件分岐やfor文、関数へ進む前に基本文法を固めたい」
という方にもおすすめです。
価格は980円で、Kindle Unlimited対象となっています。
Kindle Unlimited会員の方であれば、追加料金なしで読むことができます。
終わりに
以上、タプルについて解説してみました。リストと似ていると思いきやかなり違ったことに驚いたのではないでしょうか。このタプルを使いこなせればジャンケンのゲームを作ったりできるので、ぜひ挑戦してみましょう!


