1.使用列表占用内存大

def fab(max):L = []n, a, b = 0, 0, 1while n < max:L.append(b)a, b = b, a + bn += 1return L

2.使用迭代器减少内存占用

class Fab:def __init__(self, max):self.max = maxself.n, self.a, self.b = 0, 0, 1def __iter__(self):return selfdef __next__(self):if self.n > self.max:raise StopIterationelse:r = self.bself.a, self.b = self.b, self.a + self.bself.n += 1return rfor i in Fab(3):print(i)

3.使用yield生成器简化迭代器定义

def fab(max):n, a, b = 0, 0, 1while n < max:yield ba, b = b, a + bn += 1

yield 会把一个函数变为一个 generator;即带有 yield 的函数不再是一个普通的函数,Python 解释起会将其视为 generator,调用 fab(5) 不会执行 fab(),而是返回一个 iterable object。

参考:
https://www.jianshu.com/p/1e909ef808b9

python generator相关推荐

  1. python generator输出_python 高级特性:Generator(生成器)

    格式对比: List Imprehensions 格式:[ 语句 for .. in ..] Generator 格式:(语句 for .. in ..) 区别:List存储的是具体内容,每个元素都占 ...

  2. python generator与coroutine

    python  generator与coroutine 协程 简单介绍 协程,又称微线程,纤程,英文名Coroutine. 协程是一种用户态的轻量级线程,又称微线程. 协程拥有自己的寄存器上下文和栈, ...

  3. python generator长度_Python 高级特性之:生成器(generator)和迭代器(Iterator)

    前言: 之前学习Python自动化,接触了不少python的学习,对生成器印象尤其深,网上也看了很多介绍,下面主要是这些概念的个人学习整理(如侵删). 正文: 如要创建一个非常大的列表,受到内存限制, ...

  4. python generator转为list_Python中的 List Comprehension 以及 Generator

    11行代码就写出了一个配置文件的解析器. def loadUserInfo(fileName): userinfo = {} file = open(fileName, "r") ...

  5. C++20 coroutine 探索I:co_await 原理 | 使用 C++ 协程写 python generator

    时隔三个月,才回到当时说的学协程的坑,中间学了各种各样的东西,起码对现代 C++ 有些许了解了.尾递归优化 快速排序优化 CPS 变换 call/cc setjmp/longjmp coroutine ...

  6. Python: generator, yield, yield from 详解

    1.Generator Expressions 生成器表达式是用小括号表示的简单生成器标记法: generator_expression ::= "(" expression co ...

  7. 关于 Python generator(生成器)的类比

    Python 的生成器运用仿佛是最完美的 xing爱,生成器本身和循环代表男女,结束代表同时达到高潮,不是很精准,但很有趣啊!哈哈哈,一下记住了 转载于:https://www.cnblogs.com ...

  8. python generator iterator_Python:Iterator、Generator和Yield总结

    一.Iterator和Iterable 首先,要明白Iterable可迭代对象 和Iterator 迭代器的区别. 类中实现了__iter__(),那就认为它有迭代能力,其对象即可迭代对象,具有迭代能 ...

  9. python generator object_python - 将生成器对象转换为列表以进行调试

    只需在发电机上拨打help p即可. lst = list(gen) lst 请注意,这会影响不会返回任何其他项目的生成器. 您也无法在IPython中直接调用help p,因为它与列出代码行的命令冲 ...

最新文章

  1. 10.PHP加密相关
  2. jQuery的next()、nextAll()、nextUntil()方法
  3. numpy拼接多维数组(numpy.concatenate命令详解)
  4. Web Service学习总结
  5. antd vue关闭模态对话框_如何在Bootstrap项目中用Vue.js替代jQuery
  6. github ssh 配置_怎么给Git配置多个SSH Key?
  7. 计算机网路网络层之IP协议(4)——有类IP地址
  8. Linux 脚本编写基础(三)
  9. wordpress搭建 ubuntu16.04 apache2 + php7.0 + mysql
  10. 一种去水印的营业执照识别方法
  11. 关于约束多目标MOEA/D-DAE
  12. java导出excel加水印且加密(已实现)
  13. 华为od与中软外包哪个更好_真惨!入职中软一个月(外包华为)就离职了~
  14. 1236. Find All Numbers Disappeared in an Array
  15. mysql 查询 本周 上周,Mysql查询本周,上周,本月,上月数据
  16. 网关和路由器功能的有哪些不同
  17. Process finished with exit code 1 解决方法
  18. 【详解】jupyter 如何添加文字标题
  19. Android之Parcel和Parcelable
  20. Element Plus

热门文章

  1. dbcc dbreindex server sql_SQL Server数据库碎片整理
  2. android评论功能带emoji,分享一个自己写的emoji-comments评论组件
  3. docker $PWD路径_基于Docker搭建Nacos集群
  4. Python提取Word文档中所有超链接地址和文本
  5. Python+pywin32批量转换Word文件为PDF文件
  6. 32时间片轮转_【解惑】到底是quot;时间片quot;?还是quot;分时轮询quot;?
  7. 轻量版 markdown博客_如何快速搭建自己的博客平台
  8. 基于OpenCV和C++实现最大阈值分割算法
  9. 文字组合生成器_万字长文神器,原来只是固定数据库排列组合而成
  10. python字符串_四、Python的字符串