迭代器是一个更抽象的概念,任何对象,如果它的类有 next 方法和 iter 方法返回自己本身,对于 string、list、

dict、tuple 等这类容器对象,使用 for 循环遍历是很方便的。在后台 for 语句对容器对象调用 iter()函数,iter()

是 python 的内置函数。iter()会返回一个定义了 next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()

也是 python 的内置函数。在没有后续元素时,next()会抛出一个 StopIteration 异常。

生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需要返回数

据的时候使用 yield 语句。每次 next()被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置

和所有的数据值)

区别:生成器能做到迭代器能做的所有事,而且因为自动创建了 iter()和 next()方法,生成器显得特别简洁,而且

生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态的自动方法,当

发生器终结时,还会自动抛出 StopIteration 异常。

python生成器和迭代器区别_生成器、迭代器的区别?相关推荐

  1. 迭代器生成器可迭代对象_使用迭代器时如何避免ConcurrentModificationException

    迭代器生成器可迭代对象 Java Collection类是快速失败的,这意味着如果在使用迭代器遍历某个线程的同时更改了Collection,则iterator.next()将抛出ConcurrentM ...

  2. python中的列表生成式_生成器中的列表推导式

    # 2,用列表推导式做下列小题 # 1)过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 # lst=['abc','asfg','ad','ap'] # print([i.upper() fo ...

  3. 容器删除元素后迭代器失效_使用迭代器遍历容器元素

    迭代器为我们提供了统一的遍历容器的方式. 1.Iterator源码分析 public Iterator<E> iterator() {return new Itr(); }private ...

  4. python中文意思k-Python中_,__,__xx__的区别

    上面的代码片段来自于django源码(django/forms/forms.py).这里的errors是一个属性,属于API的一部分,但是_get_errors是私有的,是不应该访问的,但可以通过er ...

  5. ajax同步和异步的区别_同步电机和异步电机区别

    电工之家:www.dgzj.com   QQ群:2179090 关注电工之家官方微信公众号"电工之家",收获更多经验知识. 同步电机和异步电机之间从区别就在于转子内的励磁电流,同步 ...

  6. java 与.net区别_.net和java区别

    1..net是语言无关,java是平台无关 .net是个平台,技术平台,如果你的电脑是微软的,基本要装.net的框架,不然有些程序无法打开: java也一样,要装个虚拟机,不然系统无法识别. 但是不同 ...

  7. python中迭代器和可迭代对象的区别_Python 可迭代对象迭代器生成器的区别

    生成器是一种特殊的迭代器,生成器自动实现了"迭代器协议"(即__iter__和next方法),不需要再手动实现两方法. 首先从字面意思来解释Iterable和Iterator的区别 ...

  8. python 生成器 迭代器 区别_Python生成器和迭代器的区别

    What is the difference between iterators and generators? Some examples for when you would use each c ...

  9. python生成器和迭代器作用_浅谈Python中的生成器和迭代器

    迭代器 迭代器协议 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么返回一个异常来终止本次迭代.(只能往前走,不能往后退!) 迭代器对象 遵循了(实现了)迭代器协议的对象.(对象内 ...

最新文章

  1. 一分钟帮你提升Android studio 编译速度
  2. 医学+数据科学,必将大有可为 | 清华生物医学影像研究中心赵锡海
  3. 3招打破机器学习工程师的边界
  4. iOS开发UI中懒加载的使用方法
  5. k8s mysql volume_Kubernetes(k8s)中文文档 名词解释 Volumes_Kubernetes中文社区
  6. 小马哥的 Java 项目实战学习笔记
  7. oracle的基本概念,oracle的基本概念
  8. 机器学习--------SVM
  9. 伴鱼DQC数据质量平台实践
  10. 程序员的修神之路是?
  11. Linux 系统文件及结构
  12. 最新麦子学院33G完整版Web前端Web前端开发从入门到精通
  13. C# log4net App.config 配置系统未能初始化问题
  14. 中文分词与关键词提取概述
  15. 字节跳动40W大数据开发岗,面试也不过如此
  16. 【深度域适配】二、利用DANN实现MNIST和MNIST-M数据集迁移训练
  17. Sentinel 相关知识点整理
  18. 中软python面试题_我入职中软国际经历告诉你 简历应该这样写
  19. 计蒜客--天上的星星
  20. 目标检测 YOLOv5 - 卷积层和BN层的融合

热门文章

  1. 分类素材(part1)--Python与机器学习实战
  2. 51单片机 简易光电循迹小车
  3. 一文看懂:搭建活动分析体系
  4. SAP UI5 应用开发教程之二十三 - 列表控件的排序 Sort 和分组 Group
  5. SAP UI5 应用开发教程之十七 - 聚合绑定在 UI5 复合控件中的使用
  6. SAP Spartacus 如何使用 cypress 进行端到端自动化测试
  7. 什么是前端开发中的Pseudo elements
  8. Angular单元测试框架beforeEach和it的执行顺序
  9. 程序员自我修养的4个阶段
  10. SAP Spartacus RouteEvent,如何从localhost跳转到其他路由路径的