【发布时间】:2020-05-02 20:30:39
【问题描述】:
It is easy to convert an entire iterator sequence into a list 使用list(iterator),但是在不首先创建整个列表的情况下直接从迭代器创建子列表的最佳/最快方法是什么,即如何在不首先创建整个列表的情况下最好地创建list(iterator)[m:n]?
很明显,对于m > 0,它不应该*(至少不总是)可以直接这样做,但对于n,它应该小于序列的长度。想到[p for i,p in zip(range(n), iterator)],但这是最好的方法吗?
上下文很简单:创建整个列表会导致 RAM 溢出,因此需要对其进行分解。那么你如何有效地和/或 python-ic-ly 做到这一点?
*我提到的列表理解显然可以用于m > 0,方法是在执行前调用next(iterator)m 次,但我不喜欢这里缺少python 特性。
【问题讨论】:
标签: python performance iterator sublist