sdruizer.com 2022-11-12 17:25 采纳率: 100%
浏览 12
已结题

python中迭代器和生成器的区别是啥?

python中迭代器和生成器的区别是啥?
在网上搜了下,也没有看明白

  • 写回答

2条回答 默认 最新

  • 穆雄雄 人工智能领域优质创作者 2022-11-15 07:52
    关注

    什么是迭代器?迭代器是可以像我们在 for 循环中那样迭代的对象。我们也可以说迭代器是一个对象,它一次返回一个元素。也就是说,在我们明确要求他们的下一个项目之前,他们不会做任何工作。它们的工作原理在计算机科学中称为惰性求值。惰性求值是一种求值策略,它将表达式的求值延迟到真正需要它的值。由于 Python 迭代器的惰性,它们是处理无穷大的好方法,即可以永远迭代的可迭代对象。您几乎找不到不与迭代器配合使用的 Python 程序。

    迭代器是 Python 的一个基本概念。您已经在第一个 Python 程序中了解到可以迭代容器对象,例如列表和字符串。为此,Python 创建了列表或字符串的迭代器版本。在这种情况下,迭代器可以被看作是一个指向容器的指针,它使我们能够迭代这个容器的所有元素。迭代器是一种抽象,它使程序员能够访问可迭代对象(集合、字符串、列表等)的所有元素,而无需深入了解该对象的数据结构。

    生成器是一种特殊的函数,它使我们能够实现或生成迭代器。

    大多数情况下,迭代器是隐式使用的,就像在 Python 的 for 循环中一样。

    https://blog.csdn.net/pythonandaiot/article/details/122312653 可以看看这个

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • ·星辰大海 2022-11-12 23:00
    关注

    顾名思义,生成器用的时候再生成,迭代器是先准备好数据再迭代
    生成器主要是节省内存,对于对大数据进行遍历的时候往往推荐生成器,要不然会出现爆内存的情况

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月23日
  • 已采纳回答 11月15日
  • 创建了问题 11月12日

悬赏问题

  • ¥15 stm32f103zet6 串口5无法收发数据
  • ¥15 宝塔面板的data内存要怎么清理呢
  • ¥15 关于C语言使用线程队列实现多线程并发
  • ¥15 这个运行,错误在哪里呀,大家看看吧,教导我
  • ¥15 advanceinstaller对话框设置
  • ¥100 正常上网,内部网页无法打开
  • ¥15 组件库引入并使用在若依框架未展示
  • ¥149 关于#使用python 的Flash Echarts+ajax+mysql动态数据实现饼图#的问题,请各位专家解答!
  • ¥15 RichTextBox中追加文本时报错
  • ¥15 关于c语言的学习问题