🐧
Python3 データ型の分類
組み込み型 (buit-in types)
Python 3.12.4
の時点で、標準で使用可能なデータ型は全15種類。
- 数値型: 3種類 (
int
,float
,complex
) - 特殊型: 2種類 (
bool
,NoneType
) - シーケンス型: 4種類 (
str
,range
,list
,tuple
) - 集合型: 2種類 (
set
,frozenset
) - マッピング型: 1種類 (
dict
) - バイナリ型: 3種類 (
bytes
,bytearray
,memoryview
)
データ型の分類表
組み込み型 (buit-in types) の全15種類
データ型 (data type) | データコンテナ (data container) | シーケンス (sequence) | マッピング (mapping) | 反復可 (iterable) | 変更可 (mutable) | 変更不可 (immutable) | データ (data) |
---|---|---|---|---|---|---|---|
int | ◎ | 整数 | |||||
float | ◎ | 浮動小数点数 | |||||
complex | ◎ | 複素数 | |||||
bool | ◎ | True, False (特殊型) | |||||
NoneType | ◎ | None (特殊型) | |||||
str | ◎ | ◎ | ◎ | 文字列 | |||
range | ◎ | ◎ | ◎ | 整数列 | |||
list | ◎ | ◎ | ◎ | ◎ | リスト | ||
tuple | ◎ | ◎ | ◎ | ◎ | タプル (変更不可) | ||
set | ◎ | ◎ | ◎ | 集合 | |||
frozenset | ◎ | ◎ | ◎ | 集合 (変更不可) | |||
dict | ◎ | ◎ | ◎ | ◎ | 辞書 | ||
bytes | ◎ | ◎ | ◎ | バイト列 | |||
bytearray | ◎ | ◎ | ◎ | バイト列 (変更可) | |||
memoryview | ◎ | ◎ | バッファプロトコル |
データコンテナ型
任意の型のデータを複数格納できるデータ型のこと。
Pythonでは、 list
、tuple
、dict
、set
、frozenset
の5種類が標準のデータコンテナ型。
他にも、凍結集合 (Frozenset), デック (Deque), 名前付きタプル (NamedTuple)などがある。
シーケンス型
順序を持つデータ型。各要素はインデックスによってアクセス可能。
Pythonでは、str
, range
, list
, tuple
, bytes
, bytearray
の6種類が標準のシーケンス型。
len()
でオブジェクトのサイズ(文字数や要素数)を取得できる。
マッピング型
キーバリュー型のデータ構造。Pythonでは、dict
が標準のマッピング型。
JSON
やYAML
などのキーバリュー型のデータ形式も、Pythonでは辞書型(dict
)で扱う。
イテラブル型
反復可能(iterable)なオブジェクトのことで、要素を1つずつ返すことができる。
つまり、for data in iterable_object
の形式で、1つずつデータを取り出せるオブジェクトのこと。
オブジェクト型
Pythonにおける「オブジェクト型」という言葉は、基本的にすべてのものが「オブジェクト」であるというPythonの哲学に基づく。Pythonのすべてのデータ型はオブジェクト型として扱われる。
ユーザー定義オブジェクト型
- class: クラス(汎用的なオブジェクト型)
- dataclass: データクラス(簡潔なデータ保持クラス, C言語の構造体のようなデータ型)
- NamedTuple: 名前付きタプル(イミュータブルなデータ構造)
- Enum: 列挙型 (名前付き定数を定義するためのクラス)
Discussion