🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی نعیمی
iterator vs iterable
جامعه پایتون (وب) ایجاد شده در ۲۲ تیر ۱۴۰۲

فرق این دو تا چیه؟

  • iterable: آبجکتی است که میشه روش Loop زد و با حلقه پیمایشش کرد. مثل: lists, sets, tuples, distionaries, strings, generators (هر آبجکتی که دارای متد __iter__ باشد.)
colors = ['Black', 'Purple', 'Green']
for item in colors:
    print(item)

colors یک iterable است.

  • iterator: یک iterable است با این تفاوت که متد __next__ هم دارد و تکه‌های بعدی را با تابع next باید پیمایش کرد.

در مثال زیر یک لیست را تبدیل به iterator میکنیم:

colors = ['Black', 'Purple', 'Green']
iterator = iter(colors)
print(next(iterator))  # Output: Black
print(next(iterator))  # Output: Purple
print(next(iterator))  # Output: Green
print(next(iterator))                    
# Output:
# Traceback (most recent call last):
#   File "iterator-and-iterable-in-python.py", line 31, in 
#     print(next(iterator))
# StopIteration
بهترین پاسخ
محسن موحد ۲۲ تیر ۱۴۰۲، ۱۲:۳۰