据说今天是七夕。跟我没鸡毛关系。
分期把生成器记录下。
我们先看一个例子。
这是个列表,建立这个列表的方式是列表表达式。
看看,我如果用一个比较大的数据,这得吃我多少内存空间。我作死了一把,截图的时候卡的要死。
我内存8G 一个Python 吃6G,电脑要炸啊这是。
真是令人窒息的操作。
我们引进生成器的一个原因就是。我们在用列表的数据的时候,肯定不是同时每个都需要,所以我们不需要把这些东西都同时生成,可以用一个生成一个。这样会节省很多空间。
构造生成器
1.表达式构造
我们可以通过表达式构造生成器
例如:
a是列表。
b就是生成器
就这么简单,它占内存比列表稍多了呢。
我们用生成器试试刚才那个大数字。
秒生成啊,而且也是正常的内存占用。
那我们如果使用它呢?这样用
使用next(生成器)
但是超过它的生成范围可就报错了哟
显示了停止迭代。(生成器可都是迭代器对象哟~,迭代器对象可不一定是生成器的。)
今天就到这里,我要去复习下迭代器。。都忘光了。(滑稽)