迭代器和生成器都是 Python 中用于处理可迭代对象的工具。 一、迭代器 1. 定义: - 迭代器是一个可以记住遍历位置的对象。 - 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 2. 特点: - 迭代器提供了一种不依赖索引的访问集合元素的方式。 - 节省内存,因为它不需要一次性加载整个集合到内存中。 3. 举例: - 对于列表、元组、字符串等可迭代对象,可以使用 iter() 函数将其转换为迭代器。 my_list = [1, 2, 3] my_iterator = iter(my_list) print(next(my_iterator)) 输出 1 print(next(my_iterator)) 输出 2 print(next(my_iterator)) 输出 3 二、生成器 1. 定义: - 生成器是一种特殊的迭代器,它可以在需要的时候生成值,而不是一次性生成所有的值并存储在内存中。 2. 特点: - 节省内存,尤其适用于处理大量数据。 - 使用 yield 关键字来暂停和恢复函数的执行,从而实现值的逐步生成。 3. 举例: - 使用生成器函数来创建生成器。 def my_generator(): yield 1 yield 2 yield 3 gen = my_generator() print(next(gen)) 输出 1 print(next(gen)) 输出 2 print(next(gen)) 输出 3 - 还可以使用生成器表达式来创建生成器,它类似于列表推导式,但使用圆括号而不是方括号。 my_generator = (i for i in range(3)) print(next(my_generator)) 输出 0 print(next(my_generator)) 输出 1 print(next(my_generator))
点赞 评论

相关推荐

牛客网
牛客企业服务