Iterable on mitä tahansa, jonka yli voit iteroida (lista, merkkijono, dict); iterator on objekti, joka suorittaa varsinaisen iteraation, tuottaa arvoja yksi kerrallaan ja seuraa paikkaa. Tämä ero on for-silmukoiden toiminnan perusta Pythonissa.
Kaksi protokollaa
Iterable → has __iter__() → returns an iterator
Iterator → has __next__() → returns the next value (and __iter__ returning itself)
