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

生成器

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

创建生成器有很多方法:

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

0

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

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

1

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

2

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

方法2:含有yield

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简介 基本概念 Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。Genera...
    oWSQo阅读 3,517评论 0 2
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 8,238评论 0 9
  • 我家旁边有个花店,简单的大棚里总有络绎不绝的顾客。那些漂亮的花也确实招人喜爱。没什么事的时候,我总喜欢跑到花棚里转...
    圆圆2408阅读 2,435评论 0 3
  • 有时候,我们很想去认识在我们对面的,旁边的那个ta,我们鼓起勇气想找一个理由去搭讪,但是又害怕因为冒昧的打扰,略显...
    一只有意识的猫阅读 1,715评论 0 1

友情链接更多精彩内容