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

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

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

Pythonでは、大量のデータを格納・操作するためのオブジェクトとして、「リスト」「タプル」「辞書」型などが主に使われます。利用機会は多くないですが、他にも集合型(set)やArray型もあります。
外部ライブラリでは、配列に相当するものとしてNumPy型オブジェクトがよく使われます。
それぞれの主な違いは次のとおりです。

種類 括り文字 ポイント
リスト型 [ … ] ・異なるデータ型の要素を格納可能
・長さ(要素数)が可変
・要素の書き換え可
・インデックス(番号)で要素にアクセス
タプル型 ( … ) ・異なるデータ型の要素を格納可能
・長さ(要素数)が可変
要素の書き換え不可
・インデックス(番号)で要素にアクセス
辞書型
(連想配列)
{ … } ・異なるデータ型の要素を格納可能
・長さ(要素数)が可変
・要素の書き換え可
キー(文字列や数値)で要素にアクセス
配列型
(NumPy)
np.array([ … ]) 同じデータ型の要素のみ格納可能
長さ(要素数)が不変
・要素の書き換え可
・インデックス(番号)で要素にアクセス
処理が非常に高速(C言語並)
「NumPyライブラリ」をインストールする必要有
集合型(sets) {…} ・異なるデータ型の要素を格納可能
・長さ(要素数)が可変
重複する要素があっても無視される(一意な値をもつ要素が残る)
・リスト型と違い、更新可能なオブジェクトを要素として持てない(タプルは可能)
要素の順序は保持しない
array型 array.array(‘データ型’,…) 指定したデータ型の要素のみ格納可能
・長さ(要素数)が可変
・要素の書き換え可
・インデックス(番号)で要素にアクセス

補足

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
Array型
集合型 data = {1, 2, 3, 1}
print(data) # {1, 2, 3}
401 Unauthorized
【Doxygen】Pythonのコメント記述例
DoxygenでPythonにドキュメンテーションコメントを記述する例を解説します。
404 NOT FOUND | Python入門速報
【NumPy入門】配列の基礎的な扱い方(ndarray)
Python言語とNumPyで配列を扱う際の基礎的な部分をソースコード付きで解説します。
【Python】セット型(set)の使い方
Pythonでセット型(set)を扱う方法についてソースコード付きでまとめました。

コメント