タプル構造|Pythonのお勉強

4つのデータ構造があります。それは、タプル構造、リスト構造、辞書構造、集合構造ですが、今回はタプル構造についてまとめます。

タプル構造とは

タプル構造とは、カンマで区切られたデータの配列です。Indexingされており、中のデータには0から順に番号が振られております。

また、要素の再代入はできないため、1度定義したら変えられません。これはユースケースによっては、メリットでもデメリットにもなりますので、注意が必要です。

代入の方法

カンマで区切って複数の値を入れます。

x = 1, “apple”, 3.14

といった具合です。以下のように括弧を使っても良いのですが、私個人的には括弧を付けたほうが良いと思ってます。というのも、他のデータ構造(例えばリスト)では括弧(角括弧、波括弧)が必須になってくるので、併せて自分の中でルール化した方が間違いが少なくなるかなと思いました。

x = (1, “apple”, 3.14)

データの取り出し方法

タプル構造はIndexingされており、データに0から番号が振られています。それを指定することでデータを取り出せます。

print(x[1])

先ほどの代入の例ですと、0番目が数字の1、1番目が文字列のapple、2番目が少数の3.14だったので、この出力結果はappleとなります。

スライシングでデータを取り出す

スライシングという方法で範囲を指定して複数のデータを取り出すことができます。「〇以上〇未満」であることがポイントです。

x[A]A番目のデータ
x[A:B]A以上B未満のデータ
x[A:]A以上のデータ
x[:B]B未満のデータ

アンパッキング

タプルに格納されたデータを1つずつ違う変数に格納します。

tup = "Apple", "Banana", "Chocolate"
x, y, z = tup

forのイテラブルとして使用する

forとは反復処理に必要な文法ですが、反復の回数を指定します。反復の回数として指定できるデータをイテラブルと言います。タプル構造はイテラブルとしての利用が可能です。

つまり、タプル構造の変数に3つのデータが格納されている場合、forのイテラブルとして指定すれば、3回の処理をしてくれるというわけです。

enumerate()を使う

仮の変数を2つ指定して、インデックス番号と値を抜き出してくれます。

# enumerate
for i, v in enumerate(tup):
    print(i, v)

ここまでのサンプル

上記のサンプルコードです。

#  Tuple Unpacking
tup = "Apple", "Banana", "Chocolate"
x, y, z = tup
print(x, y, z)

# tuple()
tup2 = tuple("apple")
print("\n", tup2)

# Concatenate
a = tuple("AbC")
b = tuple("dEf")
c = a + b
print("\n", c)

# for
for i in tup:
    print(i)

# enumerate
for i, v in enumerate(tup):
    print(i, v)

zip()を使って2つのタプルからデータ取得

zip()を使用すると、2つのタプル構造の配列から1つずつ順番にデータを抜き出すことができます。

上がサンプルコードで、下がその結果です。

よっさん
  • よっさん
  • 当サイトの管理人。ニューヨークの大学を飛び級で卒業。その後某日系IT企業でグローバル案件に携わる。マレーシアに1.5年赴任した経験を持つ。バイリンガルITエンジニアとしていかに楽に稼ぐか日々考えている。

コメントする

メールアドレスが公開されることはありません。