Python是一種功能強(qiáng)大的編程語(yǔ)言,它支持許多不同類型的迭代器。其中一種類型是活躍迭代器,它可以在迭代時(shí)動(dòng)態(tài)地進(jìn)行修改。
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
上面的代碼演示了一個(gè)簡(jiǎn)單的活躍迭代器類。該迭代器接受一個(gè)可迭代對(duì)象作為參數(shù),并在迭代時(shí)對(duì)其中的元素進(jìn)行修改。具體來(lái)說(shuō),如果被迭代的元素是偶數(shù),則將該元素乘以2并將結(jié)果添加到序列的末尾。
我們可以使用該迭代器處理任何可迭代對(duì)象,例如一個(gè)列表:
numbers = [1, 2, 3, 4, 5] active_iterator = ActiveIterator(numbers) for number in active_iterator: print(number)
在運(yùn)行上述代碼后,我們將獲得以下輸出:
1 2 3 4 5 8
我們可以看到,當(dāng)?shù)?時(shí),該元素被乘以2并添加到列表末尾,因此在接下來(lái)的迭代中,我們將看到8這個(gè)數(shù)字。
總之,Python的活躍迭代器為我們提供了一種方便的方式來(lái)修改迭代的元素,這對(duì)于處理一些動(dòng)態(tài)變化的數(shù)據(jù)結(jié)構(gòu)非常有用。