Python生成器是什么?为什么要使用Python生成器
常有人问,什么是Python生成器、为什么要用Python生成器、如何使用Python生成器?接下来让我们一起来了解这个生产工具吧。
首先,为什么要有生成器?
与其说为什么要使用,不如先来看看为什么要有这个东西。生成器中引入PEP 255后,生成器就是Python中极其重要的一部分。由于使用生成器是一次处理一个数据,在内存和存储的需求上会比使用list方式直接全部生成再存储节省很多资源。它可以说是一个不怎么占计算机资源的一种方法。
生成器可以让开发者自定义一个有迭代器行为的函数,它能够让开发者更快、更便捷的创建一个迭代器。
简单的生成器
我们可以用列表推导(生成式)来初始化一个列表,如图所示:
我们用差不多的方法来做出一个生成器,只不过我们只要将上面的[ ]换成( )如图所示:
看到上面print(gen) 并不是直接输出结果,而是告诉我们这是一个生成器。
那什么是迭代器?
初步理解,迭代器是我们平时做某件事的步骤,例如我们做饭的步骤:首先我们要洗菜,然后切菜,接着炒菜,最后就是出锅开吃了!
从专业的角度上来说Iterator即为迭代器,迭代器是一个可被迭代(循坏)的对象,它能够抽象为一个装着数据同时又有着能够迭代对象行为的容器。每天在使用的一些可迭代的对象例如:字符串、列表、字典或其它名字的对象。一个迭代器是一个实现了迭代器接口 Iterator Protocol的类. 这个接口为类提供了两个方法: __iter__ 和 __next__。
以上内容就是为什么要使用Python生成器和什么是Python生成器啦!