编辑
2025-06-26
Python
00
请注意,本文编写于 37 天前,最后修改于 37 天前,其中某些信息可能已经过时。

目录

生成器
案例
其他生成器情况

生成器

默认使用yield在函数内,即改函数就会成为一个特殊的迭代器,称为生成器

作用:实现高效的迭代和流式数据处理,惰性求值,省内存

案例

python
def fibonacci_generator(n): """生成斐波那契数列的生成器""" a, b = 0, 1 for _ in range(n): yield a a, b = b, a + b print(list(fibonacci_generator(5))) # [0, 1, 1, 2, 3]

其他生成器情况

(x * x for x in range(1000000)) 使用元组方式去生成

python
# 列表推导式 squares_list = [x * x for x in range(1000000)] # 生成器表达式 squares_generator = (x * x for x in range(1000000)) # 计算内存使用 import sys print(f"List size: {sys.getsizeof(squares_list)} bytes") print(f"Generator size: {sys.getsizeof(squares_generator)} bytes") # List size: 8448728 bytes # Generator size: 208 bytes

优势对比:生成器在处理大数据集、流式数据和无限序列时,比列表推导式更节省内存。通过惰性求值,生成器可以有效地减少内存使用,提高程序的性能和可扩展性。

本文作者:lixf6

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!