Pythonにおけるタプルについて【初心者向け解説記事】
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
タプルとは?
タプルとは、Pythonのデータ構造の一つで、複数の要素をまとめて扱うことができます。タプルはリストによく似ていますが、一度作成した後はその要素を変更することができないという特徴があります。これは、タプルが「イミュータブル(immutable)」という変更不能な性質を持つためです。
タプルの作成方法
タプルを作成するには、カンマで区切られた値を丸カッコ”()” で囲みます。たとえば、以下のように作成します。
タプルはリストと同様、異なる型のデータを格納することができます。たとえば、整数、浮動小数点数、文字列を一つのタプルにまとめることができます。
また、要素が一つしかないタプルを作成するには、以下のように末尾にカンマを付けます。カンマをつけないと、下の例ではただの数字として認識されます。これがもし文字列などだった場合はエラーになり、思わぬバグの原因となることがあるので気をつけて下さい。
my_tuple = (1, 2, 3) # タプル
mixed_tuple = (1, 2.0, "三") # 様々な型のデータを格納したタプル
single_element_tuple = (1,) # 要素が一つしかないタプル
なお、以下のようにカッコを省略した場合でもタプルを作成できますが、カッコをつける方が一般的であり、可読性も向上します。
my_tuple = 1, 2, 3 # カッコをつけなくてもタプルを作成できる
タプルの要素へのアクセス
タプルの要素にアクセスする方法はリストと非常に似ています。リストの要素にアクセスする方法は以下URLに記載しています。
Pythonにおけるリストについて【初心者向け解説記事】#リストの要素へのアクセス
リスト同様、インデックスを使用して特定の要素にアクセスすることができます。インデックスは0から始まります。
my_tuple = (1, 2, 3)
print(my_tuple[1]) # 2 が出力される
また、リスト同様、負のインデックスを使うことで、タプルの最後から要素を参照することができます。たとえば、-1は最後の要素、-2は最後から2番目の要素を参照します。
my_tuple = (1, 2, 3)
print(my_tuple[-1]) # 3 と出力される
なお、タプルの要素はリストと異なり変更することができません。もし変更を行おうとした場合は、エラーになりますので注意してください。
タプルとリストの使い分け
タプルとリストは多くの面で似ていますが、それぞれの特性から以下のような使い分けが考えられます。
変更可能性
リストは可変(mutable)です。つまり、リストの要素は追加、変更、削除が可能です。一方、タプルは不変(immutable)です。タプルの要素を一度定義すると、その要素は変更することができません。
これだけ見るとタプルはリストの下位互換のように思う方も多いかもしれませんが、例えば、ユーザーリストやストックアイテムリストなど、内容が頻繁に変わるものにはリストが適しています。一方、タプルは不変(immutable)であるため、一度定義したら変更がない、または変更すべきでないデータに対して使用されます。例えば、曜日や都道府県など、滅多に変わることのないものにはタプルが適しています。一方、内容が頻繁に変わるものにはリストが適しています。
データの種類
一般的に、リストは同種のデータを格納するのに適しています。すなわち、全て数値や全て文字列といったように同じ型のデータが並ぶ場合です。一方、タプルは異種のデータを格納するのによく使われます。例えば、あるタプルがユーザーデータを表すとき、そのタプルの要素にはユーザー名(文字列)、年齢(整数)、身長(浮動小数点数)といった異なる種類のデータが格納されるでしょう。
パフォーマンス
タプルはリストに比べてメモリ効率が良く、少ないメモリでデータを保存できます。また、タプルの方がリストよりも処理速度が速い傾向があります。そのため、大量のデータを扱い、かつそのデータが不変である場合には、タプルを使用すると効率的です。
タプルの活用方法
タプルには、他にも様々な活用方法があります。
タプルのアンパック
タプルを使って一度に複数の変数を代入する方法です。
x, y, z = (1, 2, 3) # x = 1, y = 2, z = 3
タプルを関数の戻り値にする
関数が複数の値を返す際に、タプルが使われることが多いです。
def min_max(nums):
return min(nums), max(nums)
numbers = [2, 3, 5, 1, 6]
min_num, max_num = min_max(numbers) # min_num = 1, max_num = 6
まとめ
Pythonのタプルはイミュータブルなデータ構造で、一度作成するとその内容を変更することができません。そのため、一度定義されたら変わらない、または変更するべきでないデータの扱いに適しています。また、タプルはリストに比べてメモリ効率が良く、処理速度も早い傾向があります。
タプルの作成方法、要素へのアクセス方法、リストとの使い分け、そしてタプルの活用方法について解説しました。特に、タプルのアンパックや関数の戻り値に使う方法などは頻繁に使われるテクニックです。以上の知識を活用し、Pythonでのプログラミング効率を向上させてください。
【著者】
フォワードソフト株式会社のエンジニア。Java、Python、JavaScript、C#などの言語の他、クラウドやネットワーク技術を勉強しています。PythonやVBAを使った自動化で楽をする方法を考えるのが好きです。 最近はジェネレーティブAIの業務利用に関する検証を行っています。 資格を通じて知識を吸収することを心がけており、セキュリティスペシャリスト、データベーススペシャリスト、応用情報技術者、Oracle Certified Java Programmer Gold SE 11、Pythin3 エンジニア認定試験、HTML5プロフェッショナル認定試験レベル2、AWSプラクティショナーなどの情報資格を保有しています。
正社員/フリーランスの方でこのようなお悩みありませんか?
- 自分に合う案件を定期的に紹介してもらいたい
- 週2、リモートワークなど自由な働き方をしてみたい
- 面倒な案件探し・契約周りは任せて仕事に集中したい
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート