9
什么时候不是使用python生成器的好时机?
这与您可以使用Python生成器函数做什么相反呢?:python生成器,生成器表达式和itertools模块是这些天我最喜欢的python功能。当设置操作链以对大量数据执行时,它们特别有用-我在处理DSV文件时经常使用它们。 那么什么时候不是使用生成器,生成器表达式或itertools函数的好时机? 我什么时候应该更喜欢zip()了itertools.izip(),或者 range()在xrange()或 [x for x in foo]结束了(x for x in foo)? 显然,我们最终需要通常通过创建列表或使用非生成器循环对其进行迭代来将生成器“解析”为实际数据。有时我们只需要知道长度即可。这不是我要的 我们使用生成器,以便我们不会将新列表分配到内存中以存储临时数据。这对于大型数据集尤其有意义。小型数据集也有意义吗?是否存在明显的内存/ CPU权衡? 考虑到列表理解性能与map()和filter()的令人大开眼界的讨论,如果有人对此进行了分析,我尤其感兴趣。(alt链接)