用生成器表达式来改写数据量较大的列表推导式

列表推导式的缺点:对于输入序列的每一个值来说都可能要创建仅含一项元素的全新列表,当输入的数据多时,会损耗大量内存,可能引起奔溃。

生成器表达式在运行时,不会把整个序列都呈现出来,而会估值为迭代器,每次调用生成一项数据。同时两个生成器表达式可以连锁使用,迅速执行,可以用来处理大量数据,如:

>>> it = (len(x)  for x in open('/tmp/my_file.txt'))

>>> root = ((x,x**0.5) for x in it)

使用生成器表达式要注意的是,它是有状态的,用过一次之后不能重复使用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容