מה ההבדל בין iterator לבין iterable?

תגיות: ,

iteratable זה מבנה נתונים שאפשר לעשות עליו איטרציות, (כלומר לרוץ על הנתונים שבו עם לולאה), ו-iterator זה ערך ספציפי בתור iterable?

אני אנסה לראות אם הבנתי:
iterator - הוא משתנה שאפשר לעבור על ערכיו. (כמו רשימה, מחרוזת, מילון, סט וכו…)
iterable - שם תואר, אומר שהוא “ניתן לאיטרציה” כלומר שניתן לעשות עליו פעולת איטרציה.

כלומר כל משתנה שהוא iterator הוא iterable כי ניתן לעשות עליו איטרציה.

לייק 1

יש על ההבדל בין המונחים הסבר בסוף מחברת של generators :slight_smile:

לייק 1

טוב iterable הבנתי מה הוא אומר, לגבי iterator לפי ההגדרה במחברת 4:
Iterator
ערך שמייצג זרם של מידע, ומתוכו מאחזרים ערכים אחרים. אפשר לאחזר ממנו ערך אחד בכל פעם, לפי סדר מסוים, בעזרת next() .
iterator הוא בהכרח iterable, אך לא כל iterable הוא iterator.

אז iterator הוא ערך שמוחזר ע"י מילת המפתח yield בכל קריאה לgenerator function?

iterable - שם תואר, אומר שהוא “ניתן לאיטרציה” כלומר שניתן לעשות עליו פעולת איטרציה.
iterator - הוא משתנה שמחזיר זרם ערכים (ערך אחד בכל איטרציה) מתוך ה iterable = (רשימה, מחרוזת, מילון, סט וכו…)