Python疊代器與可疊代物件的區別與聯絡

2020-07-16 10:05:26
疊代,是重複反饋過程的活動,通常是為了逼近所需目標或結果。每對過程重複一次稱為一次“疊代”,而每次疊代得到的結果會作為下一次疊代的初始值。在 Python 中,迭代是存取集合型資料的一種方式,對於字串、列表、元組、集合和字典,都可以使用疊代來遍歷其中的每個元素,而這些可以使用 for 迴圈遍歷的物件也被稱為可疊代物件。

疊代器是將一個可疊代物件新增了疊代遍歷特性後變換而成的物件。疊代器有以下特點:
  • 從集合的第一個元素開始存取,直到所有的元素被存取完結束;
  • 可以記住遍歷的位置;
  • 只能向前不能後退。

可疊代物件不一定是疊代器,但迭代器一定是可疊代物件,二者的關係可以用圖 1 表示。

可疊代對象與疊代器的關係
圖 1:可疊代物件與疊代器的關係