Python 組み込み型の分類
- 型の分類表
- 変更不可:イミュータブル型(immutable型)
- 変更可:ミュータブル型(mutable型)
- イテラブル型(iterable型)
- シーケンス型(seguence型)
- マッピング型(mapping型)
型の分類表
組み込み型 | 変更不可 | 変更可 | イテラブル | シーケンス | マッピング | 備考 |
---|---|---|---|---|---|---|
bool | ◎ | 真偽 | ||||
int | ◎ | 整数 | ||||
float | ◎ | 浮動小数点数 | ||||
complex | ◎ | 複素数 | ||||
list | ◎ | ◎ | ◎ | 配列 | ||
tuple | ◎ | ◎ | ◎ | 配列 | ||
range | ◎ | ◎ | ◎ | 等差数列 | ||
dict | ◎ | ◎ | ◎ | 辞書 | ||
set | ◎ | ◎ | 集合 | |||
frozenset | ◎ | ◎ | 集合 | |||
bytearray | ◎ | ◎ | ◎ | バイト列 | ||
bytes | ◎ | ◎ | ◎ | バイト列 | ||
str | ◎ | ◎ | ◎ | 文字列 |
変更不可:イミュータブル型(immutable型)
イミュータブル型は、値を変更できないデータ型のこと。
数値型、文字列型はイミュータブル型に分類されているのが不思議に思うが、
実は、数値型、文字列型は変数に代入するたびに新しいオブジェクトが作られている。
Pythonでは、各オブジェクトにid番号が割り振られていて、
そのid番号はid()関数で調べることができる。
次では、代入のたびにid番号が変化する、
つまり新しいオブジェクトが作られていることが確認できる。
a = 5 print(a) # 数値は 5 print(id(a)) # id番号は 9752288 a = 2 * a # 代入により、新しいオブジェクト生成。 print(a) # 数値は 10 print(id(a)) # id番号は 9752448 ←変化している a = a + 3 # 代入により、新しいオブジェクト生成。 print(a) # 数値は 13 print(id(a)) # id番号は 9752544 ←変化している
変更可:ミュータブル型(mutable型)
ミュータブル型は、値を変更できるデータ型のこと。
イテラブル型(iterable型)
イテラブル型は、for文の in の後ろのデータ配列として使えるもの。
ちなみに、in の前の変数名は、イテレータ(iterator)または反復子という。
for 変数名 in データ配列: 繰り返し処理
シーケンス型(seguence型)
シーケンス型は、データ配列の一種であって、
データ配列の各要素を、順番を示すインデックスを使ってアクセスできるもの。
シーケンス型は、すべてイテラブル型である。
マッピング型(mapping型)
マッピング型は、データ配列の一種であって、
データ配列の各要素を、keyを使ってアクセスできるもの。
マッピング型も、イテラブル型である。