使用生成器表达式来改写数据量比较大列表推导
列表推导的缺点是:在推导过程中,对于输入序列的每个值都要创建仅含一项元素的全新列表。如果数据量较大会消耗大量内存,导致程序崩溃。
推导代码:
1 |
|
为了解决此问题Python提供了生成器表达式(generator expression),它是对列表推导和生成器的一种泛化(generalization)。生成器表达式在运行的时候并不会把整个输出序列都呈现出来,而是会估值为迭代器(iterator),这个迭代器每次可以根据生成器表达式产生一项数据。
生成器表达式
把实现列表推导式所用的写法放入一对圆括号中,就构成了生成器表达式。
1 |
|
生成器表达式组合
1 |
|
外围的迭代器每次前进时,都会推动内部的迭代器。
组合的表达式速度会很快
二者区别
生成器表达式求值时,它会立刻返回一个迭代器,而不会深入处理文件中的内容。
- 本文标题:使用生成器表达式来改写数据量比较大列表推导
- 本文作者:Roy
- 创建时间:2020-04-17 13:33:27
- 本文链接:https://www.yrzdm.com/2020/04/17/generator-expression/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!