【发布时间】:2014-07-06 11:19:48
【问题描述】:
问题
我必须下载object_x。为简单起见,object_x 包含一系列 integers 加起来为 1000。下载不规律。我以看似随机的顺序接收整数组或chunks,我需要跟踪它们,直到我拥有所有1000 来组成最终的object_x。
传入的块也可以重叠,例如:
Chunk 1: integers 0-500
Chunk 2: integers 600-1000
Chunk 3: integers 400-700
当前方法
将object_x 创建为list,其中包含其所有组成整数0-1000。下载chunk 时,从object_x 中删除构成chunk 的所有整数。继续这样做,直到 object_x 为空(此时已知为完整)。
object_x = range(0,1000)
# download chunk 1
chunk = range(0, 500)
for number in chunk:
if number in object_x:
object_x.remove(number)
# repeat for every downloaded chunk
结论
此方法非常占用内存。如果 object_x 或 chunk 太大,脚本会抛出 MemoryError。
我正在寻找一种更好的方法来跟踪构建object_x 的块。有任何想法吗?我正在使用 Python,但我猜语言并不重要。
【问题讨论】:
标签: python arrays list memory integer