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

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

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

Pythonには、複数のデータを格納できるオブジェクトとして主に「リスト型」「タプル型」「辞書型」「配列型(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

基本的な使い方

リスト、タプル、辞書型、配列型の基本的な使い方を以下に整理しました。

項目
リスト リストの使い方, 要素取得, 末尾の要素取得, スライスで要素取得, 末尾に要素追加, 任意の場所に要素追加, 要素の削除, リストの要素確認, in演算子
タプル 使い方, 連結, 繰り返し, 要素取得, 部分取得, 要素数取得, リスト→タプル
辞書型 使い方, 値取得, 要素数取得, 連結, データ追加, 代入, 要素削除(del, pop), 全要素削除, キーの存在確認, 全てのキー・値取得, タプル・リストに変換
配列型 NumPy入門 サンプル集

おすすめ記事

Python入門 サンプル集
NumPy入門 サンプル集

シェア&フォローお願いします!