Python是一種功能強大的編程語言,它支持許多不同類型的迭代器。其中一種類型是活躍迭代器,它可以在迭代時動態地進行修改。
class ActiveIterator: def __init__(self, iterable): self.iterable = iterable self.index = 0 def __iter__(self): return self def __next__(self): if self.index >= len(self.iterable): raise StopIteration value = self.iterable[self.index] self.index += 1 if value % 2 == 0: self.iterable.append(value * 2) return value
上面的代碼演示了一個簡單的活躍迭代器類。該迭代器接受一個可迭代對象作為參數,并在迭代時對其中的元素進行修改。具體來說,如果被迭代的元素是偶數,則將該元素乘以2并將結果添加到序列的末尾。
我們可以使用該迭代器處理任何可迭代對象,例如一個列表:
numbers = [1, 2, 3, 4, 5] active_iterator = ActiveIterator(numbers) for number in active_iterator: print(number)
在運行上述代碼后,我們將獲得以下輸出:
1 2 3 4 5 8
我們可以看到,當迭代到4時,該元素被乘以2并添加到列表末尾,因此在接下來的迭代中,我們將看到8這個數字。
總之,Python的活躍迭代器為我們提供了一種方便的方式來修改迭代的元素,這對于處理一些動態變化的數據結構非常有用。