Re: py

作者: cities516 (安安路過)   2024-09-19 20:03:00
※ 引述《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也很有料欸 怎麼我以前都沒學過這些

Links booklink

Contact Us: admin [ a t ] ucptt.com