Një iterable është gjithçka që mund të përsëritni (një listë, string, dict); një iterator është objekti që kryen përsëritjen aktuale, prodhon vlera një e nga një dhe ndjek pozicionin e tij. Kjo dallim qëndron në themel të mënyrës sesi funksionojnë for sythe në Python.
Dy protokollet
Iterable → has __iter__() → returns an iterator
Iterator → has __next__() → returns the next value (and __iter__ returning itself)
