2019-05-26派森学习第184天

2019-05-26  本文已影响0人  每日派森

生成器

python中如果生成一个很大的列表,比如有100万个元素,这样会很浪费内存。可以通过生成器一边循环,一边计算接下来是哪个元素,这样就是生成器。

创建生成器有很多方法:

方法1:将列表生成式的[]变成圆括号()就可以啦

0

我们可以直接打印出list的每一个元素,但我们怎么打印出generator的每一个元素呢?

如果要一个一个打印出来,可以通过next()函数获得generator的下一个返回值

1

当然,每次都手动next()太烦了,也可以用for遍历:

2

所以,我们创建了一个generator后,基本上永远不会调用next(),而是通过for循环来迭代它,并且不需要关心StopIteration的错误。

方法2:含有yield

这就是定义generator的另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator

上一篇 下一篇

猜你喜欢

热点阅读