タプルとリストの違い
タプル(tuple
)とリスト(list
)は、Pythonの基本的なデータ構造の一部ですが、いくつかの重要な違いがあります。本記事では、それぞれの特徴と違いを説明します。
タプル(Tuple)
タプルは、複数の要素を順序付けして格納するためのデータ構造です。
- 丸括弧
()
で定義する - 要素の値を変更することができない(immutable)
- インデックスを使用して要素にアクセスすることができる
- インデックスやスライスを使用して、要素の一部を取得することができる
my_tuple = (1, 2, 3, 4, 5)
print(my_tuple[0]) # 1
print(my_tuple[1:3]) # (2, 3)
リスト(List)
リストは、複数の要素を順序付けして格納するためのデータ構造です。
- 角括弧
[]
で定義する - 要素の値を変更することができる(mutable)
- インデックスを使用して要素にアクセスすることができる
- インデックスやスライスを使用して、要素の一部を取得することができる
- 要素の追加や削除、並び替えなど、リストを変更する操作ができる
my_list = [1, 2, 3, 4, 5]
print(my_list[0]) # 1
print(my_list[1:3]) # [2, 3]
my_list.append(6) # 要素の追加
del my_list[2] # 要素の削除
タプルとリストの主な違いは、変更不可(immutable)か変更可能(mutable)かという点です。タプルは変更不可であり、一度作成された後は要素の変更ができませんが、リストは変更可能であり、要素の追加、削除、変更ができます。
また、タプルは固定されたデータを表現する場合に使用され、メモリ効率が良いです。一方、リストは可変であり、要素の追加や削除が必要な場合に使用されます。
どちらのデータ構造を使用するかは、データの性質と使用目的によって異なります。
リストからタプルを生成する方法
tuple
のコンストラクタにリストを渡します。
my_list = [1, 2, 3, 4, 5]
my_tuple = tuple(my_list)
print(my_tuple)
リストやタプルの長さ(要素数)を取得する
len()
を使用します。
my_list = [1, 2, 3]
my_tuple = (1, 2, 3, 4, 5)
print(len(my_list)) # 3
print(len(my_tuple)) # 5
リスト操作
リストから先頭の要素を削除する
my_list = [1, 2, 3, 4, 5]
first_element = my_list.pop(0)
print(my_list) # 出力: [2, 3, 4, 5]
print(first_element) # 出力: 1
リストの平均値を求める
my_list = [1, 2, 3, 4, 5]
average = sum(my_list) / len(my_list)
print(average)
リストが空かどうかを判定する
リストで判定
my_list = [1]
if my_list:
print("not empty")
else:
print("empty")
not empty
my_list = []
if my_list:
print("not empty")
else:
print("empty")
empty
空のリストと比較
my_list = []
if my_list == []:
print("empty")
else:
print("not empty")
empty