Iterable je vse, kar lahko prepustite v zanki (seznam, niz, dict); iterator je objekt, ki izvaja dejansko iteracijo, proizvaja vrednosti eno za drugo in spremlja svojo pozicijo. Ta distinkcija je osnova tega, kako delujejo for zanke v Python.
Dva protokola
Iterable → has __iter__() → returns an iterator
Iterator → has __next__() → returns the next value (and __iter__ returning itself)
