学习Python,就要先学习语法,yield以及生成器和迭代器就是Python十大语法之一。下文,是对yield以及生成器和迭代器的详细介绍,一起了解一下!

Yield是外来词汇,要想了解yield,就要先了解generator(生成器)。要了解generator,得先知道 iterator(迭代器)。

py2时代,range()返回的是list,但如果range(10000000)的话,会消耗大量内存资源,所以,py2又搞了一个xrange()来解决这个问题。py3则只保留了xrange(),但写作range()。xrange()返回的就是一个迭代器,它可以像list那样被遍历,但又不占用多少内存。generator(生成器)是一种特殊的迭代器,只能被遍历一次,遍历结束,就自动消失了。总之,不管是迭代器还是生成器,都是为了避免使用list,从而节省内存。那么,如何得到迭代器和生成器呢?pyrhon内置了迭代函数 iter,用于生成迭代器,用法如下:

yield以及生成器和迭代器

yield 则是用于构造生成器的。比如,我们要写一个函数,返回从0到某正整数的所有整数的平方,传统的代码写法是这样的:

yield以及生成器和迭代器

但是如果计算1亿以内的所有整数的平方,这个函数的内存开销会大,这是 yield 就可以大显身手了:

yield以及生成器和迭代器

如果再次遍历,则不会有输出了。

融跃Python金融实战课

看完上述的介绍,是不是对yield以及生成器和迭代器有所了解了。如果你想学习Python,就选择融跃Python金融实战课吧,该课程利用Python语言的智能性、简洁性、高效性与金融的专业实战相结合,使学习该语言的学员,具备语言汇编能力,将错综复杂的金融数据进行模块化梳理,进而建立科学的金融模型,协助做出的投资决策,旨在帮助金融从业人员增强行业竞争力。