Python データ型とデータ構造 : タプル

株式会社リュディアです。Python のデータ型とデータ構造についてまとめていきます。今回はタプルについてです。Python3 を前提としており動作は Anaconda3 で確認しています。

前回にまとめたリストの記事を事前に読んでいただくことで理解が深まると思います。

Tuple はあまり見かけない単語ですね。そもそもどのような意味なのでしょうか。この単語がのっていない辞書もあります。例えば Cambridge dictionary で見てみましょう。

発音はチュープルに近いものだと思います。最初に掲載されている意味は a structure of data that has several parts と説明されています。いろいろなパーツをもつデータ構造とのことです。私個人としてはおーだからタプルなのか?という印象は無かったです。では Python のタプルについて見ていきましょう。

タプルの特徴は一度作ったデータ構造に対して要素を追加、削除、変更することはできないということにあります。では具体的例を見ていきましょう。

tuple_fruits = 'Apple', 'Orange', 'Banana'
print(tuple_fruits)
>>('Apple', 'Orange', 'Banana')

シングルクォートで囲った文字列をカンマで区切ってタプルとして定義しています。しかし出力では ( ) で囲まれていることに注意してください。では 出力と同様に ( ) 付きで定義してみましょう。

tuple_fruits = ('Apple', 'Orange', 'Banana')
tuple_fruits
>>('Apple', 'Orange', 'Banana')

同様の結果が得られました。( ) のありなしはタプルの定義として違いが無いということですね。PEPでは ( ) ありを推奨しているので特に制約がない場合は ( ) 付きで記述した方がよいと思います。

最後にタプルの利用例です。複数の変数への代入を一括で行うことが可能です。例えば以下の例をみてください。

tuple_fruits = ('Apple', 'Orange', 'Banana')
a, o, b = tuple_fruits
print(a)
print(o)
print(b)
>>Apple
>>Orange
>>Banana

変数 a, o, b にぞれぞれタプルの要素が代入されていることがわかります。

今回まとめたタプルはリストと比べて一度定義すると変更できないという制約を持ちます。逆にプログラム中で定数個の定数で定義される集合はタプルで定義されるべきです。ミュータブル、イミュータブルという概念があるのですが、これらについてはまた別途まとめます。

では、ごきげんよう。




この記事が気に入ったらサポートをしてみませんか?