イテラブルオブジェクトとは
イテラブルオブジェクト
繰り返し処理が可能であるような性質をもつことを “iterable”、すなわち「反復可能である」と言う。これが「イテラブル(iterable)」の意味である。つまり「イテラブルオブジェクト」とは、for文などで要素を1つずつ取り出して処理できるような(通常、複数の要素からなる)オブジェクトを指す用語である。
例えばリスト、辞書、タプルなどはイテラブルオブジェクトである。Pythonに慣れ親しんでいる人にとっては意外かもしれないが、文字列もイテラブルオブジェクトの仲間である。いずれの型もループ処理で要素を取り出して何らかの操作を行うことができる。
# リスト l = [1,2,3] # 辞書 d = {'key1':'Hello', 'key2':'World'} # タプル t = ('Hello', 'World') # セット(集合) s = {'Hello', 'World'} # 文字列 str = 'japan'
なお、「イテラブルオブジェクト」はPython独自の用語というわけではなく、プログラミング一般に使われる用語である。
使用例
Pythonでは以下のようにfor文でイテラブルオブジェクトが扱える。
for 変数 in イテラブルオブジェクト: 処理
例えば配列の要素を書き出すコードは次のように書くことができる。
l = ["a", "b", "c"] for i in l: print(i)
上のプログラムの i という変数はイテレータと呼ばれるもので、リストの中の要素を逐次受け取る。enumerate関数を用いて要素の番号を取得するには以下のようにする。
l = 'japan' for i, str in enumerate(l): print(i, str)
enumerate関数の返り値は2つなので、イテレータも2つ用意しなければならないことに注意。