Iterator در پایتون :

Iterator در پایتون یک الگوی طراحی است که امکان دسترسی به عناصر یک داده ساختار را به صورت ترتیبی و به صورت مکرر فراهم می کند. با استفاده از Iterator، می توان به راحتی به تمامی عناصر یک داده ساختار دسترسی داشت و آنها را پیمایش کرد.

Iterator در پایتون از دو متد اصلی تشکیل شده است: متد `__iter__` و متد `__next__`. متد `__iter__` برای بازگرداندن خود Iterator استفاده می شود و متد `__next__` برای بازگرداندن عنصر بعدی در داده ساختار مورد نظر استفاده می شود. اگر عنصر بعدی وجود نداشته باشد، متد `__next__` باید یک استثنا StopIteration را برمی گرداند.

نکته مهمی در استفاده از Iterator در پایتون این است که این الگوی طراحی برای داده ساختارهایی که به صورت ترتیبی پیمایش می شوند مفید است. مثلا لیست، رشته، تاپل و دیکشنری از داده ساختارهایی هستند که Iterator در آنها قابل استفاده است.

برای استفاده از Iterator در پایتون، ابتدا باید یک شیء Iterator ایجاد کنید. برای این کار، می توانید از تابع iter() استفاده کنید که یک شیء Iterable دریافت کرده و شیء Iterator مربوطه را برمی گرداند. سپس می توانید با استفاده از متد next() به ترتیب عناصر را دریافت کنید.

در زیر یک مثال ساده از استفاده از Iterator در پایتون آورده شده است:

“`
numbers = [1, 2, 3, 4, 5]
iter_numbers = iter(numbers)
print(next(iter_numbers))
print(next(iter_numbers))
print(next(iter_numbers))
print(next(iter_numbers))
print(next(iter_numbers))
“`

این کد ابتدا یک لیست از اعداد را تعریف می کند. سپس با استفاده از تابع iter()، یک شیء Iterator برای این لیست ایجاد می شود. در نهایت با استفاده از متد next()، به ترتیب اعداد را دریافت و چاپ می کنیم. خروجی این کد به صورت زیر خواهد بود:

“`
1
2
3
4
5
“`

مزیت استفاده از Iterator در پایتون این است که به صورت لنگه است و به تمامی عناصر داده ساختار دسترسی داریم. همچنین این الگوی طراحی کم حافظه است و برای پیمایش داده های بزرگ مفید است.

به طور خلاصه، Iterator در پایتون یک الگوی طراحی است که امکان دسترسی به عناصر یک داده ساختار را به صورت ترتیبی و به صورت مکرر فراهم می کند. با استفاده از Iterator، می توان به راحتی به تمامی عناصر یک داده ساختار دسترسی داشت و آنها را پیمایش کرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *