Python 生成器:高效迭代的秘密武器
1. 生成器概述
生成器是 Python 提供的强大工具,基于迭代概念,能实现优雅与高效并存的编码模式。生成器主要分为两类:
- 生成器函数 :与普通函数类似,但使用 yield 而非 return 语句返回结果,可在每次调用间暂停和恢复状态。
- 生成器表达式 :与列表推导式语法相似,不过返回的是逐个产生结果的对象,而非列表。
2. 生成器函数
生成器函数在各方面类似普通函数,区别在于它不是一次性收集并返回结果,而是开始计算、产生一个值、暂停状态以保存恢复所需信息,再次调用时恢复并执行下一步。Python 会自动将生成器函数转换为迭代器,可对其使用 next 函数。
以下是一个简单示例,对比普通函数和生成器函数计算平方数:
def get_squares(n): # 普通函数方法
return [x ** 2 for x in range(n)]
print(get_squares(10))
def get_squares_gen(n): # 生成器方法
for x in range(n):
yield x ** 2 # 使用 yield,不使用 return
print(list(get_squares_gen(10)))
两个函数打印结果相同: [0, 1
超级会员免费看
订阅专栏 解锁全文
1360

被折叠的 条评论
为什么被折叠?



