[Python]タプルとリストの違い

Pythonにおける「タプル」と「リスト」の主な違いについて説明します。

可変性

この点が最も大きな違いです。「リスト」は可変(mutable)であり、「タプル」は不変(immutable)です。リストの要素は、インデックスを用いて自由に変更、追加、削除することが可能です。

例えば

my_list = ["apple", "banana", "cherry"]
my_list[0] = "avocado"
print(my_list)  # Output: ["avocado", "banana", "cherry"]

一方、タプルの要素は作成後に変更することができません。例えば、以下のようなコードはエラーを引き起こします。

my_tuple = ("apple", "banana", "cherry")
my_tuple[0] = "avocado"  # TypeError: 'tuple' object does not support item assignment

シンタックス

タプルとリストの作成には異なるシンタックスが用いられます。リストは角括弧[]を用いて作成します。

my_list = ["apple", "banana", "cherry"]

一方、タプルは丸括弧()を用いて作成します。

my_tuple = ("apple", "banana", "cherry")

しかし、タプルは括弧なしでも作成することができます。

my_tuple = "apple", "banana", "cherry"

使用場面

これらの違いにより、タプルとリストはそれぞれ異なる使用場面を持ちます。

リストは、要素が頻繁に変更される、あるいは順序が重要な場合によく用いられます。また、要素を追加、削除する場合にもリストを使用します。

一方、タプルは要素が変更されないことを保証したい場合、またはデータの整合性を保つ必要がある場合に用いられます。例えば、月の名称や曜日の名称など、一旦設定すれば変わらないデータに対してはタプルを使用します。また、タプルは辞書のキーとして使用できますが、リストは不可能です。

これらが「タプル」と「リスト」の主な違いです。Pythonのタプルとリストはとても似ていますが、それぞれ異なる特性と用途を持っています。適切なデータ型を選ぶことで、効率的で読みやすいコードを書くことができます。