迭代器和生成器是Python中用于处理可迭代对象的重要概念。
迭代器(Iterator)是一个实现了和方法的对象,它可以被用于遍历一个可迭代对象(如列表或字符串)的元素。当没有元素可以返回时,方法应该抛出异常来表示迭代结束。
生成器(Generator)是一种更方便的迭代器的实现方式。它使用语句来暂停执行并保存当前状态,使得下一次调用方法时可以从上一次暂停的地方继续执行。生成器可以通过函数定义并使用语句来生成值。
以下是迭代器和生成器的简单示例:
# 迭代器的例子 class MyIterator: def __init__(self, data): self.data = data self.index = 0 def __iter__(self): return self def __next__(self): if self.index < len(self.data): result = self.data[self.index] self.index += 1 return result else: raise StopIteration # 生成器的例子 def my_generator(data): index = 0 while index < len(data): yield data[index] index += 1 # 使用迭代器 iterator = MyIterator([1, 2, 3, 4, 5]) for item in iterator: print(item) # 使用生成器 generator = my_generator([1, 2, 3, 4, 5]) for item in generator: print(item)
这两种方式都允许逐个访问一个序列中的元素,但生成器更加简洁,因为它不需要显式地维护索引和状态。2025年正版资料免费大全公开6