Python Iterators
در پایتون، Iterator (تکرارگر) یک شیء است که میتواند یک دنباله از دادهها را یکییکی برگرداند.
مکانیزم اصلی پیمایش لیستها، تاپلها، رشتهها و … بر پایهٔ Iterator کار میکند.
🔹 مفاهیم کلیدی
-
Iterable: هر شیء که میتواند یک Iterator تولید کند (مثل
list،tuple،str،dict،set). -
Iterator: شیئی که متدهای
()__iter__و()__next__را پیادهسازی کرده باشد.-
()__iter__خودش را برمیگرداند. -
()__next__هر بار عنصر بعدی را میدهد و در پایان StopIteration برمیگرداند.
-
🔹 مثال با ساختارهای آماده
هر ساختار قابل تکرار (list, tuple, …) را میتوان به Iterator تبدیل کرد:
حلقهٔ
forدقیقاً همین کار را پشت صحنه انجام میدهد.
🔹 ایجاد Iterator سفارشی
میتوان کلاس سفارشی ساخت که ()__iter__ و ()__next__ داشته باشد:
📌 خروجی:
🔹 تفاوت Iterable و Iterator
🔹 Generators (ژنراتور)
ژنراتور نوع خاصی از Iterator است که با کلمهٔ کلیدی yield تعریف میشود:
هر بار
yieldفراخوانی میشود، وضعیت تابع حفظ شده و مقدار بعدی در فراخوانی بعدی تولید میشود.
🔹 کاربردهای رایج
-
خواندن فایلهای بزرگ خطبهخط بدون مصرف زیاد حافظه.
-
تولید دنبالههای بیپایان یا بزرگ (مثل اعداد فیبوناچی).
-
پردازش lazy (تنبل) که مقادیر را هنگام نیاز میسازد.
💡 تمرینهای پیشنهادی
-
یک Iterator بساز که اعداد زوج بین 0 تا 20 را برگرداند.
-
ژنراتوری بنویس که دنباله فیبوناچی تا عدد 100 را تولید کند.
-
برنامهای بنویس که یک فایل متنی را خط به خط با Iterator سفارشی بخواند.
✅ خلاصه
-
Iterable شیئی است که میتواند Iterator برگرداند.
-
Iterator متدهای
()__iter__و()__next__دارد. -
حلقهٔ
forدر پایتون از این پروتکل استفاده میکند. -
Generators راه سریع و راحت برای ساخت Iteratorها هستند.
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React