Python 生成器 yield
惰性计算/无限序列/生成器表达式/send · 难度:入门 · +20XP
Python 生成器 —— 按需产出的数据流
普通函数一次性返回所有结果。生成器(Generator)用yield逐个产出数据,每次只在内存中保存当前值——处理大数据的神器。
基本用法
def million_numbers():
for i in range(1000000):
yield i # 逐个产出,不占内存
squares = (x**2 for x in range(1000000)) # 生成器表达式
next(squares) # 0
next(squares) # 1
动手练习
- 基础练习:用生成器写一个无限斐波那契数列。
- 进阶应用:用生成器逐行读取超大文件,逐行处理不爆内存。
- 项目实战:把项目中返回大列表的函数改为生成器。
学习提示:每学完一个知识点,建议在Python交互环境中动手验证。编程不是看会的,是写会的。打开你的终端输入python开始练习吧!遇到问题善用官方文档 docs.python.org。坚持每天写代码,三个月后你会看到巨大的进步。