Python 是一個非常流行的編程語言,擁有許多方便實用的特性。其中之一就是迭代器。
迭代器是 Python 中重要的數(shù)據(jù)容器,不僅在代碼實現(xiàn)過程中方便,而且可以節(jié)省大量的內(nèi)存空間,提高代碼的運行效率。在 Python 中,每個迭代器對象都有__iter__()
和__next__()
方法。其中:__iter__()
返回迭代器對象本身,__next__()
返回容器中的下一個元素。
class MyIter: def __init__(self, n): self.i = 0 self.n = n def __iter__(self): return self def __next__(self): if self.i< self.n: i = self.i self.i += 1 return i else: raise StopIteration()
上面的代碼表示實現(xiàn)了一個迭代器類 MyIter,可以返回一個有 n 個元素的列表。在這個例子中,方法名稱__iter__()
和__next__()
是固定的,且__next__()
方法必須拋出 StopIteration 異常。
下面是實際使用迭代器的一些示例
# 使用for循環(huán)遍歷迭代器 my_iter = MyIter(3) for i in my_iter: print(i) # 使用next()方法遍歷迭代器 my_iter = MyIter(3) iter_obj = iter(my_iter) print(next(iter_obj)) print(next(iter_obj)) print(next(iter_obj)) # 自定義迭代器函數(shù) def my_iterator(n): i = 0 while i< n: yield i i += 1 # 使用生成器遍歷迭代器 for i in my_iterator(3): print(i) # 使用生成器和next()遍歷迭代器 my_gen = my_iterator(3) print(next(my_gen)) print(next(my_gen)) print(next(my_gen))
以上的代碼展示了不同方式遍歷迭代器的方法。使用 for 循環(huán)是最常見的方式,但也可以使用 next() 來獲取下一項。在自定義迭代器函數(shù)時,使用 yield 關(guān)鍵字創(chuàng)建生成器對象后,同樣可以用 for 循環(huán)或 next() 遍歷。
總體來說,Python中的迭代器對象是一種強大且實用的編程工具,值得開發(fā)者深入研究。