Python中迭代器与生成器
作者:野牛程序员:2023-12-27 15:14:51python阅读 2594
迭代器和生成器是Python中用于处理可迭代对象的重要概念。
迭代器(Iterator)是一个实现了__iter__
和__next__
方法的对象,它可以被用于遍历一个可迭代对象(如列表或字符串)的元素。当没有元素可以返回时,__next__
方法应该抛出StopIteration
异常来表示迭代结束。
生成器(Generator)是一种更方便的迭代器的实现方式。它使用yield
语句来暂停执行并保存当前状态,使得下一次调用__next__
方法时可以从上一次暂停的地方继续执行。生成器可以通过函数定义并使用yield
语句来生成值。
以下是迭代器和生成器的简单示例:
# 迭代器的例子 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)
这两种方式都允许逐个访问一个序列中的元素,但生成器更加简洁,因为它不需要显式地维护索引和状态。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
