怎样理解Python迭代器和生成器?

在 Python 中一切皆对象,对象的抽象就是类,而对象的集合就是容器 。python中列表、组、字典、集合都是容器 。python中所有的容器都是可以迭代的,这点和枚举有着本质区别 。
迭代器就是用于迭代操作的对象,它像列表一样可以迭代获取其中的每一个 。它与我们平时使用for循环遍历列表中所有元素的区别在于,构建迭代器的时候,不像列表把所有元素一次性加载到内存,而是以一种延迟计算方式返回元素,这就是我们前面所说,为什么可以极大的减小内存的占用 。它是等到调用next方法时候才返回该元素(本质上 for 循环就是不断地调用迭代器的next方法) 。
Python使用生成器对延迟操作提供了支持 。所谓延迟操作,是指在需要的时候才产生结果,而不是立即产生结果 。这也是生成器的主要好处 。生成器则是提供了一种延迟操作,其不用return返回结果,而是使用 。生成器函数就是常规函数的定义,但是,使用语句而不是return语句返回结果 。语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次重它离开的地方继续执行 。
【怎样理解Python迭代器和生成器?】我们写python代码使用的for in 语句就是将上述迭代过程隐式化,生成器是特殊和高级的迭代器,并不会像迭代器一样占用大量内存,只有在被使用的时候才会调用产生相应的对象,可以降低内存占用、优化程序结构、提高程序速度 。


    以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!

    「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助: