Pythonプログラムにおいて繰り返し処理に使用するイテラブルオブジェクトの種類について解説します。
イテラブルオブジェクトとは
イテレータオブジェクトを生成できる繰り返し可能なオブジェクトのことです。
イテレータオブジェクトとは
要素を1つずつ取り出せるオブジェクトのことです。
for文でイテラブルオブジェクトを呼び出すとイテレータオブジェクト(要素を1つずつ取り出せるオブジェクト)を生成します。実際にfor文が使用しているのは生成されたイテレータオブジェクトの方です。
イテラブルオブジェクトの種類
イテラブルオブジェクトは「シーケンス」と「コレクション」の2つに分類されます。
「シーケンス」は要素に順序がありますが、「コレクション」には要素に順序がありません。
イテラブルオブジェクトの種類(データ型)によって要素の変更ができる「ミュータブル」と変更ができない「イミュータブル」があります。
大分類 | 小分類 | データ型(type) | 要素の変更 |
---|---|---|---|
シーケンス (要素に順序あり) | シーケンス型 | リスト(list) | ミュータブル(可変) |
タプル(tuple) | イミュータブル(不変) | ||
レンジ(range) | イミュータブル(不変) | ||
テキストシーケンス型 | 文字列(str) | イミュータブル(不変) | |
バイナリシーケンス型 | バイト(bytes) | イミュータブル(不変) | |
バイト配列(bytearray) | ミュータブル(可変) | ||
メモリビュー(memoryview) | 両方(参照先依存) | ||
コレクション (要素に順序なし) | 集合型 | 集合(set) | ミュータブル(可変) |
不変集合(frozenset) | イミュータブル(不変) | ||
マッピング型 | 辞書(dict) | ミュータブル(可変) |
まとめ
- イテラブルオブジェクトはイテレータオブジェクトを生成できる繰り返し可能なオブジェクトのこと
- イテレータオブジェクトは要素を1つずつ取り出せるオブジェクトのこと
- イテラブルオブジェクトは「シーケンス」と「コレクション」の2つに分類される
- シーケンスは要素に順序がある
- コレクションは要素に順序がない
- イテラブルオブジェクトには要素の変更ができる「ミュータブル」と変更できない「イミュータブル」がある