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)を扱う方法についてソースコード付きでまとめました。
コメント