ایتراتورها در پایتون

ایتراتورها در پایتون: مفاهیم و کاربردها

در دنیای برنامه‌نویسی پایتون، ایتراتورها (Iterators) از مفاهیم پایه‌ای و قدرتمند هستند که به شما امکان پیمایش عناصر در یک مجموعه را می‌دهند. این ابزارها نقش کلیدی در مدیریت حافظه و بهینه‌سازی کدها ایفا می‌کنند.

ایتراتورها در پایتون بر اساس پروتکل ایتراتور کار می‌کنند که شامل دو متد اساسی __iter__() و __next__() است.

تفاوت ایترابل و ایتراتور

ایترابل (Iterable) ایتراتور (Iterator)
شیئی که می‌توان روی آن تکرار کرد شیئی که وضعیت تکرار را حفظ می‌کند
دارای متد __iter__() دارای متدهای __iter__() و __next__()

مثال‌های کاربردی

برای درک بهتر ایتراتورها، به این مثال ساده توجه کنید:

  1. ساخت یک لیست ساده
  2. تبدیل آن به ایتراتور با تابع iter()
  3. خواندن عناصر با تابع next()

my_list = [1, 2, 3]
my_iter = iter(my_list)
print(next(my_iter)) # خروجی: 1

ایتراتورهای سفارشی

شما می‌توانید با تعریف یک کلاس، ایتراتورهای سفارشی ایجاد کنید. برای اطلاعات بیشتر می‌توانید از این لینک استفاده کنید.

  • کلاس باید متد __iter__() را پیاده‌سازی کند
  • متد __next__() مسئول بازگرداندن مقدار بعدی است
  • با رسیدن به انتهای مجموعه، باید StopIteration ایجاد شود

ایتراتورها در پایتون کاربردهای گسترده‌ای دارند از جمله:

پیمایش مجموعه‌های بزرگ داده
بدون نیاز به بارگذاری تمام داده‌ها در حافظه
ساخت جریان‌های داده بی‌پایان
مانند تولید اعداد تصادفی یا دنباله‌های نامتناهی