教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

迭代器和生成器的区别是什么?

更新时间:2023年02月22日16时30分 来源:传智教育 浏览次数:

好口碑IT培训

  对于list、dict、string、tuple等这类容器对象,使用for循环遍历十分的方便。在后台for语句对容器对象调用iter()函数,iter()是Python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内的元素,next()也是Python的内置函数。在没有后续元素时,next()会抛出一个StopIterration的异常。

  生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是普通的函数,只是在返回数据的时候需要使用yield语句。每次next(0被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)。

迭代器和生成器的区别是什么

  两者的区别在于:生成器能做到迭代器能做的所有事,而且因为自动创建了__iter__()和next()方法,生成器显得特别简洁,而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保持程序状态的自动生成,当发生器终结时,还会自动抛出StopIterration异常。

0 分享到:
和我们在线交谈!