Python学习笔记——生成器

据说今天是七夕。跟我没鸡毛关系。

分期把生成器记录下。

我们先看一个例子。

Python学习笔记——生成器

这是个列表,建立这个列表的方式是列表表达式。

Python学习笔记——生成器

看看,我如果用一个比较大的数据,这得吃我多少内存空间。我作死了一把,截图的时候卡的要死。

我内存8G 一个Python 吃6G,电脑要炸啊这是。

真是令人窒息的操作。

我们引进生成器的一个原因就是。我们在用列表的数据的时候,肯定不是同时每个都需要,所以我们不需要把这些东西都同时生成,可以用一个生成一个。这样会节省很多空间。

构造生成器

1.表达式构造

我们可以通过表达式构造生成器

例如:

Python学习笔记——生成器

a是列表。

b就是生成器

就这么简单,它占内存比列表稍多了呢。

我们用生成器试试刚才那个大数字。

Python学习笔记——生成器

秒生成啊,而且也是正常的内存占用。

Python学习笔记——生成器

那我们如果使用它呢?这样用

Python学习笔记——生成器

使用next(生成器)

但是超过它的生成范围可就报错了哟

显示了停止迭代。(生成器可都是迭代器对象哟~,迭代器对象可不一定是生成器的。)

今天就到这里,我要去复习下迭代器。。都忘光了。(滑稽)