【python/データ構造】格納したデータを手軽にまとめられるタプルの使い方を徹底解説!

python

この記事ではpythonのタプルについて解説していきます。

この記事で学べる事

  • タプルの作成
  • タプルの使い方
  • パッキングとアンパッキング

タプルとは

タプルとは複数のデータを格納したり、取り出すことが出来るデータ構造の事を言います。

そして、タプルは比較的少ないデータを格納することに向いています。

例えば、商品の名前・値段・カロリーなどを格納することに向いています。

タプルの作成方法

タプルを作成するには()(丸括弧)に値を,(カンマ)で区切って作成します。

※注意点としてタプルの値が1個の場合は,(カンマ)を付けてください。なぜなら、カンマを付けないと普通の値に()を付けた式と区別がつかなくなってしまうからです。

#タプルの作成
(値, 値, …) ←【値が2個以上の時】
(値,) ←【値が1個の時】
() ←【値が0個(空のタプル)の時】

次に実際にタプルを使ってみます。

例題としてリンゴと値段を書いていきます。

#例題
>>>print('apple', 100)
#表示結果
('apple', 100)

タプルを作成することが出来ました。

タプルの省略

次にタプルの()を省略する方法を解説します。

#タプルの省略
値, 値, … ←【値が2個以上の時】
値, ←【値が1個の時】

次に例題を書いてみます。

例題としてタプルの()を省略し変数foodの中に’apple’と100を代入してみます。

#例題
>>>fruits = 'apple', 100
>>>print(fruits)
#表示結果
('apple', 100)

タプルを省略し、変数にも代入することが出来ました。

tuple(タプル)関数

最後にtuple(タプル)関数について解説します。

tuple関数はイテラブルからタプルを作成することが出来ます。

#tuple関数
tuple(イテラブル)

次に例題を書いてみます。

例題としてtpule関数でa~gまでのタプルを作成してみます。

#例題
>>>print(tuple('abcdefg')) 
#表示結果
('a', 'b', 'c', 'd', 'e', 'f', 'g')

イテラブルからタプルを作成することが出来ました。

タプルにインデックスやスライスを使う

次にタプルにインデックスやスライスを使う解説をします。

タプルはシーケンスなのでリストと同様にインデックスやスライスを使うことが出来ます。。

タプルはイミュータブルなので要素の変更は出来ませんが、新しいタプルを作成することで解決します。

イミュータブルとシーケンスについて知りたい方は以下の記事をご覧ください。

【初心者必見/基本的な文法4】文字列を徹底解説!

インデックスの適用

まず初めにインデックスの適用から解説します。

#タプルにインデックスを適用
タプル[インデクス]

次に例題を書いてみます。

例題として(‘apple’, 100)から’apple’だけを取り出してみます。

#例題
>>>fruits = 'apple', 100
>>>print(fruits[0])
#表示結果
apple

インデックスを使い’apple’を取り出すことが出来ました。

スライスの適用

次にスライスの適用について解説します。

#スライスの適用
タプル[開始インデックス: 終了インデックス]
タプル[開始インデックス: 終了インデックス: ストライド]

次に例題を書いてみます。

例題として(‘apple’, 100)から100だけを取り出してみます。

#例題
>>>fruits = ('apple', 100)
>>>print(fruits[1:])
#表示結果
(100,)

スライスの適用を適用して100だけを取り出すことが出来ました。

パッキングとアンパッキング

パッキングとは複数の値をタプルにまとめる操作のことを言います。

また、逆に複数の値を分解する操作の事をアンパッキングと言います。

#アンパッキングの使い方
変数, 変数, … = タプル
変数, 変数, … = イテラブル ←【イテラブルのアンパッキング】

そしてアンパッキングを使えばタプルの中にある値の一つ一つを別の変数に代入することが出来ます。

例題としてfruitsの中にある’apple’を変数nameに、100を変数priceに代入してみます。

#例題
>>>fruits = ('apple', 100)
>>>name , price = 'apple', 100
>>>print(name)
>>>print(price)
#表示結果
apple
100

nameとpriceに代入することが出来ました。

インデックスやスライスを使って要素を取り出すことはできますが、アンパッキングのほうがタプルの要素を複数の変数に対して代入することができて便利です。

便利なタプルの操作

最後にタプルで使える代表的な演算子・関数・メソッドを一部紹介します。

#便利なタプルの操作の一覧表
    ・使い方     ・結果
 タプルA+タプルB タプルの連結
 タプル*整数    要素を複製したタプル
 len(タプル)     要素の個数  
 min(タプル)        要素の最小値
 max(タプル)     要素の最大値
 タプル.count(値)  指定した値に一致する要素の個数
 タプル.index(値)  指定した値に一致する先頭に最も近い要素のインデックス

この操作は全て覚える必要はありませんが少しでも覚えて置けば便利です。

まとめ

今回はタプルについての解説をしました。

タプルは少ないデータを格納することに向いているのでメニューなどで使う場面が多いと思います。

この記事で学んだことでタプルはある程度使うことができると思います。

最後まで読んでいただきありがとうございました。

タイトルとURLをコピーしました