1.什么是生成器(generator)?
列表生成式由于受内存的限制,所以容量会受到一定的限制,假如一个列表包含100w条数据,短时间内用到的数据又很有限,所以其他大部分的数据占用的空间就是浪费。于是,生成器应运而生,生成器不会保存结果,而是保存生成器的状态,或者说是保存某种算法,在每次迭代的时候返回一个值,知道没有值返回StopIteration异常为止。
2.常见的生成器形态
a.把列表生成式的"[]"改成"()"
列表生成式由于受内存的限制,所以容量会受到一定的限制,假如一个列表包含100w条数据,短时间内用到的数据又很有限,所以其他大部分的数据占用的空间就是浪费。于是,生成器应运而生,生成器不会保存结果,而是保存生成器的状态,或者说是保存某种算法,在每次迭代的时候返回一个值,知道没有值返回StopIteration异常为止。
a.把列表生成式的"[]"改成"()"