2024-04-26 12:07:29 发布
网友
我已经有了一个pythonlist类型变量,它包含6000000个条目,其中条目数据类型是pythondication
a = [{'a': .... }, {'a': ...} , ...]
因为它占用了太多的内存,所以我想把它转换成生成器之类的东西
问题是list变量是multiprocessing Pool的返回值,所以我不能在前面创建生成器
Pool
有什么建议吗
您可以使用^{}惰性地计算结果。这将防止生成一个大列表,但您可以通过提供chunksize参数以块的形式迭代结果:
chunksize
results_generator = pool.imap(func, input_data, 64) # chunks of 64
如果内存中已经有了它,那么将它转换为generator并不能解决问题。您需要创建一个generator,它将动态地从磁盘加载条目,从而不会同时将所有条目加载到内存中Here是一篇关于在Python中使用generators来处理内存限制的好文章
generator
generators
您可以使用^{} 惰性地计算结果。这将防止生成一个大列表,但您可以通过提供
chunksize
参数以块的形式迭代结果:如果内存中已经有了它,那么将它转换为
generator
并不能解决问题。您需要创建一个generator
,它将动态地从磁盘加载条目,从而不会同时将所有条目加载到内存中Here是一篇关于在Python中使用generators
来处理内存限制的好文章相关问题 更多 >
编程相关推荐