Python中的迭代器和生成器是两种不同的概念。
迭代器是一种对象,它实现了__iter__方法和__next__方法。__iter__方法返回迭代器对象本身,__next__方法返回容器中的下一个元素。当没有元素时,__next__方法会抛出StopIteration异常。使用迭代器可以遍历容器中的元素,如列表、字符串、字典等。
生成器是一种特殊的迭代器,它使用yield关键字来定义。生成器函数在每次被调用时返回一个迭代器对象。通过yield关键字,生成器可以在每次迭代中产生一个值,并在下一次迭代时从上一次的状态中继续执行。生成器可以有效地生成大量数据,同时节省内存。
下面是一个使用迭代器的示例代码:
python复制插入
my_list = [1, 2, 3, 4, 5]
my_iter = iter(my_list)
print(next(my_iter)) # 输出1
print(next(my_iter)) # 输出2
print(next(my_iter)) # 输出3
复制插入
下面是一个使用生成器的示例代码:
python复制插入
def my_generator():
yield 1
yield 2
yield 3
yield 4
yield 5
my_gen = my_generator()
print(next(my_gen)) # 输出1
print(next(my_gen)) # 输出2
print(next(my_gen)) # 输出3
复制插入
通过迭代器和生成器,我们可以方便地遍历容器中的元素,同时节省内存和提高效率。