更新时间:2023-04-14 来源:黑马程序员 浏览量:

生成器和迭代器都是Python中处理可迭代对象的重要工具。虽然它们有一些相似之处,但也有一些明显的区别。
迭代器是一个可以遍历数据集合的对象。可以通过Python内置的iter()函数将一个可迭代对象转换为迭代器。在Python中,所有的集合对象,比如列表、元组、字典、字符串等都可以使用迭代器进行遍历。
生成器是一种特殊的迭代器,它可以通过yield语句来定义。生成器在迭代过程中逐个生成数据,而不是一次性生成所有数据。这种逐个生成数据的方式可以减少内存的使用,特别是当数据集合非常大时。
下面是一个简单的示例,演示了如何创建一个迭代器和生成器,并对它们进行遍历:
# 迭代器示例 nums = [1, 2, 3, 4, 5] it = iter(nums) while True: try: num = next(it) print(num) except StopIteration: break # 生成器示例 def my_range(n): i = 0 while i < n: yield i i += 1 for i in my_range(5): print(i)
在上面的代码中,我们首先使用iter()函数将列表nums转换为一个迭代器对象it,然后使用next()函数依次获取列表中的每个元素并打印出来。

然后,我们定义了一个生成器函数my_range(),它可以生成从0到n-1的整数。在这个函数中,我们使用了yield关键字来生成每个整数,并使用while循环来控制整个生成器的执行过程。最后,我们使用for循环遍历生成器并打印出所有生成的整数。
总之,生成器和迭代器是Python中处理可迭代对象的两种不同方式,它们在处理大数据集合时可以提高代码的效率。
毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-2722岁学鸿蒙,拿下人生第一桶金:25届毕业生,华为鸿蒙创新赛2等奖得主
2026-01-08