【Python】リスト・配列・タプル・辞書の違い

この記事では、Pythonでリスト・配列・タプル・辞書型オブジェクトの違いについて紹介します。

リスト型、タプル型、辞書型、配列型の違い

Pythonでは、大量のデータを格納・操作するためのオブジェクトとして、「リスト」「タプル」「辞書」型の3種類が用意されています。
また、外部ライブラリでは、配列に相当するものとして、NumPy型オブジェクトがあります。
それぞれの主な違いは次のとおりです。

種類 括り文字 ポイント
リスト型 [ … ] ・異なるデータ型の要素を格納可能
・長さ(要素数)が可変
・要素の書き換え可
・インデックス(番号)で要素にアクセス
タプル型 ( … ) ・異なるデータ型の要素を格納可能
・長さ(要素数)が可変
要素の書き換え不可
・インデックス(番号)で要素にアクセス
辞書型
(連想配列)
{ … } ・異なるデータ型の要素を格納可能
・長さ(要素数)が可変
・要素の書き換え可
キー(文字列や数値)で要素にアクセス
配列型
(NumPy)
np.array([ … ]) 同じデータ型の要素のみ格納可能
長さ(要素数)が不変
・要素の書き換え可
・インデックス(番号)で要素にアクセス
処理が非常に高速(C言語並)
「NumPyライブラリ」をインストールする必要有

補足

Pythonで配列というと、リスト型でなくNumPy配列のことを指す場合が多いです。
NumPy配列は、API内部がC言語とFortranで記述されているため、「同じデータ型の要素のみ格納可能」「長さ(要素数)が不変」とC言語の配列と同様な仕様となります。
リスト型より柔軟性に欠ける反面、高速にデータを処理できる優れた利点があります。
ただし利用にはNumPyライブラリを別途インストールする必要がありでます。

※リスト、タプル、辞書型は、いずれも異なるデータ型の要素を格納できます。

使用例

リスト、タプル、辞書型の使用例(宣言と要素指定)は以下の通りです。

型名 使用例
リスト型 data = [1, 2, 3, 4, 5]
print(data[0]) # 1
タプル型 data = (1, 2, 3, 4, 5)
print(data[0]) # 1
辞書型 data = {“fubuki”:1, “shirayuki”:2}
print(data[“fubuki”]) # 1
リスト型 data = np.array([1, 2, 3, 4, 5])
print(data[0]) # 1
詳細ページ
1 【Python】リストの使い方
2 【Python】タプルの使い方
3 【Python】辞書型(連想配列)の使い方
4 【Python】NumPyの使い方
5 【Python入門】サンプル集
関連記事