🐧

Python3 データ型の分類

2024/08/18に公開

組み込み型 (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では、 listtupledictsetfrozensetの5種類が標準のデータコンテナ型。
他にも、凍結集合 (Frozenset), デック (Deque), 名前付きタプル (NamedTuple)などがある。

シーケンス型

順序を持つデータ型。各要素はインデックスによってアクセス可能。

Pythonでは、str, range, list, tuple, bytes, bytearray の6種類が標準のシーケンス型。

len()でオブジェクトのサイズ(文字数や要素数)を取得できる。

マッピング型

キーバリュー型のデータ構造。Pythonでは、dict が標準のマッピング型。

JSONYAMLなどのキーバリュー型のデータ形式も、Pythonでは辞書型(dict)で扱う。

イテラブル型

反復可能(iterable)なオブジェクトのことで、要素を1つずつ返すことができる。

つまり、for data in iterable_objectの形式で、1つずつデータを取り出せるオブジェクトのこと。

オブジェクト型

Pythonにおける「オブジェクト型」という言葉は、基本的にすべてのものが「オブジェクト」であるというPythonの哲学に基づく。Pythonのすべてのデータ型はオブジェクト型として扱われる。

ユーザー定義オブジェクト型

  • class: クラス(汎用的なオブジェクト型)
  • dataclass: データクラス(簡潔なデータ保持クラス, C言語の構造体のようなデータ型)
  • NamedTuple: 名前付きタプル(イミュータブルなデータ構造)
  • Enum: 列挙型 (名前付き定数を定義するためのクラス)

Discussion