生成器

创建生成器有很多种方法,第一种只要把列表生成式的【】替换成()就可以了
如图:


image.png

创建f和g的区别在于外层的【】和(),f是一个列表,而g是一个生成器,我们可以直接打印出f中的每一个元素,而打印g中的元素则需要输入next()函数来获取生成器的下一个返回值

如图:
image.png

如果推算的算法比较复杂,用for循环无法实现时,还可以用函数实现,比如斐波拉契数列不能用列表生成器写出来,但是用函数打印出来就很简单
如图:


image.png

上面的函数和generator仅一步之遥。要把fib函数变成generator,只需要把print(b)改为yield b就可以了
如图:


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 生成器 通过列表生成式,我们可以直接创建一个列表。但是受内存限制,列表容量肯定是有限的。 而且,创建一个很多很多元...
    小学弟_阅读 341评论 0 0
  • Generator 函数的语法 简介 基本概念 Generator 函数是 ES6 提供的一种异步编程解决方案,语...
    站在大神的肩膀上看世界阅读 4,210评论 0 6
  • 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元...
    chen_000阅读 144评论 0 0
  • 通过列表生成式,我们可以直接创建一个列表,但是受内存限制,列表容量肯定是有限的,而且,创建一个包含100万个元素的...
    劉光軍_MVP阅读 169评论 0 0
  • 1.什么是生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一...
    一只写程序的猿阅读 955评论 0 4