我正在尝试使用 python 进行一些计算,但内存不足。因此,我想读/写一个文件以释放内存。我需要一个非常大的列表对象之类的东西,所以我想为文件中的每个对象写一行并读/写该行而不是内存。行排序对我来说很重要,因为我将使用行号作为索引。所以我想知道如何在不移动其他行的情况下替换 python 中的行(实际上,移动行是可以的,只要它们返回到我期望的位置)。
编辑
我正在尝试帮助一个朋友,这在 python 中比我差或等于我。该代码应该找到最大的素数,除以给定的非素数。此代码适用于数字,直到数字达到 100 万,但死后,我的记忆力在尝试制作数字列表时耗尽。
# a comes from a user input
primes_upper_limit = (a+1) / 2
counter = 3L
numbers = list()
while counter <= primes_upper_limit:
numbers.append(counter)
counter += 2L
counter=3
i=0
half = (primes_upper_limit + 1) / 2 - 1
root = primes_upper_limit ** 0.5
while counter < root:
if numbers[i]:
j = int((counter*counter - 3) / 2)
numbers[j] = 0
while j < half:
numbers[j] = 0
j += counter
i += 1
counter = 2*i + 3
primes = [2] + [num for num in numbers if num]
for numb in reversed(primes):
if a % numb == 0:
print numb
break
另一个编辑
为每个索引写入不同的文件怎么样?例如十亿个长整数文件名的文件,文件中只有一个数字?