Python のイテレータとジェネレータという概念は意外と分かりにくい。 今回は、実は深い関わり合いを持った両者についてまとめてみることにする。 というのも、最終的にジェネレータを理解するにはイテレータへの理解が欠かせないためだ。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G1036 $ python --version Python 3.6.3 イテレータとは まず、そもそもイテレータとは何者だろうか。 それについて、いくつかの側面から考えてみることにしよう。 使い方から考える 最初は、使い方という側面からイテレータとは何かを考えてみよう。 このとき、答えは「要素を一つずつ取り出すことのできるオブジェクト」になる。 実際に、使い方からイテレータについて見ていこう。