Python 生成器与迭代器
TIP
生成器使用惰性求值,可以显著降低内存占用,适合处理大数据流。
生成器函数
python
def fibonacci(n):
a, b = 0, 1
count = 0
while count < n:
yield a
a, b = b, a + b
count += 1
for num in fibonacci(10):
print(num)生成器表达式
python
# 列表推导式(立即计算,占内存)
squares_list = [x**2 for x in range(10)]
# 生成器表达式(惰性计算,省内存)
squares_gen = (x**2 for x in range(10))
for square in squares_gen:
print(square)大文件处理
python
def read_large_file(file_path):
with open(file_path, "r", encoding="utf-8") as f:
for line in f:
yield line.strip()
for line in read_large_file("huge_log.txt"):
process_line(line)