Pythonのコンテナ型一覧
Pythonにおけるコンテナ型とは、複数のデータをまとめて格納するデータ構造を指します。以下に主なコンテナ型を説明します。
1. リスト(list
)
- 説明: 順序を持つ変更可能なコンテナ。異なる型の要素を格納可能。
- 特徴:
- インデックスによるアクセスが可能
- 要素の追加・削除が容易
- ミュータブル(変更可能)
- 作成例:
Copied!!
my_list = [1, 2, 3, "hello"] my_list.append(4) # [1, 2, 3, 'hello', 4]
2. タプル(tuple
)
- 説明: 順序を持つ変更不可能なコンテナ。リストより軽量で高速。
- 特徴:
- インデックスによるアクセスが可能
- イミュータブル(変更不可)
- ハッシュ可能(リストとは異なり、辞書のキーとして利用可能)
- 作成例:
Copied!!
my_tuple = (1, 2, 3, "hello") # my_tuple[0] = 4 # エラーが発生する
3. 辞書(dict
)
- 説明: キーと値のペアを保持するコンテナ。キーを使った高速なアクセスが可能。
- 特徴:
- キーはユニークで、ハッシュ可能である必要がある(文字列や数値が一般的)
- ミュータブル(変更可能)
- 作成例:
Copied!!
my_dict = {"key1": 1, "key2": "value"} my_dict["key3"] = 3.14 # {"key1": 1, "key2": "value", "key3": 3.14}
4. セット(set
)
- 説明: ユニークな要素を保持するコンテナ。順序は保証されない。
- 特徴:
- 重複を自動的に排除
- 集合演算(和・積・差など)が可能
- ミュータブル(変更可能)
- 作成例:
Copied!!
my_set = {1, 2, 3, 3} # {1, 2, 3} my_set.add(4) # {1, 2, 3, 4}
5. frozenset
- 説明: 変更不可能なセット。
- 特徴:
- イミュータブル
- 他のセット型と同様に集合演算が可能
- 作成例:
Copied!!
my_frozenset = frozenset([1, 2, 3]) # my_frozenset.add(4) # エラーが発生する
6. 配列型(array
モジュール)
- 公式ドキュメント
- 説明: 効率的なメモリ管理が可能。
- 特徴:
- 要素はすべて同じ型
- 通常のリストより軽量で高速
- 作成例:
Copied!!
from array import array my_array = array('i', [1, 2, 3]) # 整数型の配列 my_array.append(4) # array('i', [1, 2, 3, 4])
コンテナ型の比較
コンテナ型 | 順序あり | 重複許可 | 変更可能 | 特徴的な用途 |
---|---|---|---|---|
list | 〇 | 〇 | 〇 | 順序データの格納 |
tuple | 〇 | 〇 | ✕ | 不変データの格納 |
dict | ✕ | ✕(キー) | 〇 | キーと値ペアの格納 |
set | ✕ | ✕ | 〇 | ユニークな要素の管理 |
frozenset | ✕ | ✕ | ✕ | 不変なユニーク要素の管理 |
array | 〇 | 〇 | 〇 | 数値の効率的な格納 |