好的,老邓来咯!咱们今天就来聊聊 Python 里一个非常强大,但对新手来说可能有点神秘的东西:生成器。
1. 什么是生成器?
简单来说,生成器就是一种特殊的迭代器。它不会一次性把所有数据都加载到内存,而是"随用随取",需要数据的时候才临时生成。这就好比你家有个自来水龙头,要用水的时候拧开就有,不用水的时候就关着,节约资源。
在 Python 中,生成器主要有两种创建方式:
-
生成器表达式:写法和列表推导式类似,但用的是圆括号 ()。
-
生成器函数:使用 yield 关键字的函数。
2. 生成器表达式
生成器表达式是一种简洁的创建生成器的方式,语法如下:
(expression for item in iterable if condition)
是不是很像列表推导式?区别就在于,列表推导式生成的是一个列表,而生成器表达式生成的是一个生成器对象。
案例 1: 生成一个 1 到 10 的平方数的生成器
# 列表推导式
squares_list = [x*x for x in range(1, 11)]
print(f"列表推导式结果: {squares_list}")
# 生成器表达式
squares_generator = (x*