【发布时间】:2013-01-09 01:59:53
【问题描述】:
我有一个 python 列表,它有大约 10000000 行,每行有 8 个元素。我注意到遍历这个列表并处理它们非常缓慢。在程序的某个地方,我还需要使用特定的键对这个列表列表进行排序。我在具有 2gb RAM 的系统中使用它。对如此大的列表进行处理的最佳方法是什么?
编辑
让我们假设 data[] 有大约 10000000 个列表。我需要使用每个列表的第 0 个元素对数据进行排序
所以我按如下方式遍历数据
for m in data:
为了排序,我正在使用
data=sorted(data, key=itemgetter(0))
【问题讨论】:
-
你是如何遍历你的列表的?另外,您要排序的标准是什么?
-
你是一次把这个列表加载到内存中,还是逐个加载?
-
什么是元素数据类型?您需要对它们执行哪些操作?你试过 numpy 数组吗?要就地排序,请使用
a.sort()而不是a = sorted(a) -
看看Blist,它们与列表类似,但随着大小的增加,其性能优于列表。 stutzbachenterprises.com/performance-blist/sort-random-list
标签: python sorting memory memory-management