Python 获取MemoryError,因为列表/数组太大 问题

Python 获取MemoryError,因为列表/数组太大 问题,python,arrays,list,memory,integer,Python,Arrays,List,Memory,Integer,我必须下载object\ux。为简单起见,object_x由一系列的整数组成,加起来等于1000。下载是不定期的。我以看似随机的顺序接收整数的组或块,我需要跟踪它们,直到我有了所有的1000来组成最后的对象 传入的块也可以重叠,例如: Chunk 1: integers 0-500 Chunk 2: integers 600-1000 Chunk 3: integers 400-700 现行方法 创建object\u x作为一个列表,其中包含其所有组成整数0-1000。下载区块时,从对象x中删

我必须下载
object\ux
。为简单起见,
object_x
由一系列的
整数组成,加起来等于
1000
。下载是不定期的。我以看似随机的顺序接收整数的组或块,我需要跟踪它们,直到我有了所有的
1000
来组成最后的
对象

传入的块也可以重叠,例如:

Chunk 1: integers 0-500
Chunk 2: integers 600-1000
Chunk 3: integers 400-700
现行方法 创建
object\u x
作为一个
列表
,其中包含其所有组成整数
0-1000
。下载
区块
时,从
对象x
中删除构成
区块
的所有整数。继续执行此操作,直到
object_x
为空(此时已知已完成)

结论 这种方法占用大量内存。如果
object\u x
chunk
太大,脚本将抛出MemoryError


我正在寻找一种更好的方法来跟踪块以构建
对象\ux
。有什么想法吗?我正在使用Python,但我想语言并不重要。

这是一种流媒体非常重要的场景。在内存中做任何事情都是一个坏主意,因为您可能没有足够的内存(如您的情况)。您可能应该将这些数据块保存到磁盘上,跟踪您下载的数据块数量,当您达到1000个时,在磁盘上处理它们(或者将它们逐个加载到内存中进行处理)


“这是我最近写的一篇文章——这是一个不同的主题,但它确实说明了流媒体的重要性。

那么你如何跟踪它们呢?不幸的是,我不能按照你的建议去做,因为我无法控制这段代码的部署。我所能做的就是优化我的代码,使其不会出现任何错误,因此,我会沿着这些思路寻找解决方案。
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