迭代器是Python中用于访问集合元素的一种特殊对象。它实现了两个关键方法:`__iter__()` 和 `__next__()`。`__iter__()` 方法返回迭代器对象本身,而 `__next__()` 方法返回集合中的下一个元素。当所有元素都被访问后,`__next__()` 方法会抛出 `StopIteration` 异常,表示迭代结束。
迭代器的主要优势在于它们支持惰性计算,即只在需要时计算下一个元素,这有助于节省内存资源,特别是当处理大型数据集时。
Python中的一些内置类型,如列表(list)、元组(tuple)和字典(dict),都是可迭代对象,但它们不是迭代器,因为它们没有实现 `__iter__()` 和 `__next__()` 方法。要创建一个迭代器,你需要定义这两个方法。
使用迭代器的一个典型例子是使用 `for` 循环遍历集合中的元素,这样可以避免一次性加载整个集合到内存中。
下面是一个简单的迭代器示例,它模拟了一个简单的计数器:
class Counter:def __init__(self, start, end):self.start = startself.end = enddef __iter__(self):return selfdef __next__(self):if self.start >= self.end:raise StopIterationelse:self.start += 1return self.start - 1使用迭代器for i in Counter(0, 5):print(i)
输出:
01234
这个 `Counter` 类定义了一个迭代器,它在给定的范围内生成一系列数字。每次调用 `__next__()` 方法时,它都会返回下一个数字,直到达到结束值。当达到结束值时,它会抛出 `StopIteration` 异常,结束迭代过程

