একটি iterable হল কোনো কিছু যার উপর আপনি লুপ করতে পারেন (একটি list, string, dict); একটি iterator হল যে কোনো বস্তু যা প্রকৃত পুনরাবৃত্তি করে, একবারে একটি মান তৈরি করে এবং এর অবস্থান ট্র্যাক করে। এই পার্থক্য Python-এ for লুপের কাজ করার পদ্ধতির মূলে নিহিত।
দুটি প্রোটোকল
Iterable → has __iter__() → returns an iterator
Iterator → has __next__() → returns the next value (and __iter__ returning itself)
