通常在python里,一个字典只有支持几万到几十万数据量的时候效率最高。字典太大并不适合这种数据类型。列表也不是存贮效率高的一种方式,通常我们大数据量计算会使用array,最差也要使用blist。另外range也不可以的。要用xrange。xrange通常不消耗多少内存。range会用很多内存。你上面的文字描述也没有讲...
python处理10亿级别数据求助
还没有仔细分析你的算法。第一个感觉,如果没有一个超级计算机,还是想办法优化你的算法。
通常在python里,一个字典只有支持几万到几十万数据量的时候效率最高。字典太大并不适合这种数据类型。
列表也不是存贮效率高的一种方式,通常我们大数据量计算会使用array,最差也要使用blist。
另外range也不可以的。要用xrange。xrange通常不消耗多少内存。range会用很多内存。
你上面的文字描述也没有讲明白你的算法目标。如果你讲得清楚,可以直接帮你优化一下算法。
整型的KEY,完全可以不用字典,只需要一个索引加一个一个数组就可以解决。
总体感觉你自己把算法弄得复杂了,应该可以有更简单得多的算法。先优化算法再做程序吧。即使你用java实现这个功能,也会出现内存不足。另外你代码里可通还有语法错误。
cums1,cums2,cums3应该是一个东西,为什么要弄三份。又不需要改写。一份足够了。2013-07-15