※ 引述《sustainer123 (温水佳树的兄长大人)》之铭言:
: 列表生成式
: ls = [x * x for x in range(1000000)]
: 生成器(Generator)
: ls = (x * x for x in range(1000000))
: 前者会生成一个列表 并占用1000000空间的内存
: 后者则返回生成器 生成器在迭代时才会生成元素
: 所以能节省空间
我刚上网找生成器的东西
然后又学到新的东西了
def my_generator():
for i in range(5):
yield i * i
for num in my_generator():
print(num)
用function和yield写生成器 跟return对立
在无限数列上 生成器就很好用
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
for i in range(10):
print(fib.__next__()) # 或使用 next(fib)
python也很有料欸 怎么我以前都没学过这些