生成式:一次性生成所有的数据,然后保存在内存中,适合小量的数据。
生成器:返回一个可以迭代的对象,及‘generator’对象,必须通过循环才可以一一列出所有的结果
可迭代对象:可以通过循环调用出来的,就是可迭代的对象[] 、()、 {}、生成式。
迭代器 生成器,必须通过next()函数调用并不断返回。
Iterable(可迭代对象)和Iterator(迭代器)主要区别是:
凡是可以利用for循环都是Iterable(可迭代对象),凡是需要通过next()函数获得值的可迭代对象都是Interator(迭代器)。
(所以生成器可以被next()函数调用并不断返回下一个值的对象成为迭代器)(可以简单理解为生成器都是迭代器的可迭代对象)
凡是可用作for循环的对象都是Iterable类型:
凡是可用作next()函数的对象都是Iterator类型,它们表示一个惰性的序列。