イテラブル【iterable】
概要

プログラムでは複数のデータをまとめて扱い、それらを順番に処理する操作が頻繁に登場する。例えば、配列に格納された商品名を一つずつ表示したり、文字列を構成する文字を先頭から順に処理したりする場面がこれにあたる。イテラブルはこうした「順番に取り出せる」という性質を抽象化した概念であり、具体的なデータ構造の種類を問わず統一的な方法で繰り返し処理を記述できるようにする。
Pythonの場合、リスト、タプル、文字列、辞書、セット、ファイルオブジェクトなどがイテラブルに相当する。これらはいずれもfor文に直接渡すことができ、内部の要素を順番に取り出しながら処理を進めることができる。内部的には「__iter__」メソッドを持つオブジェクトであり、このメソッドが「イテレータ」と呼ばれる別のオブジェクトを返すことで繰り返し処理の仕組みが実現される。
イテラブルと混同されやすい概念に「イテレータ」(iterator)がある。イテレータはイテラブルから生成され、現在の位置を内部に保持しながら「次の要素」を返す機能を持つオブジェクトである。すべてのイテレータはイテラブルでもあるが、すべてのイテラブルがイテレータであるわけではない。Pythonの場合、iter()関数にイテラブルを渡すとイテレータが生成され、next()関数を呼び出すことで要素を一つずつ取り出すことができる。