【发布时间】:2012-09-14 23:59:14
【问题描述】:
我正在编写一个 python 脚本来执行各种字符排列。最终,脚本会因内存不足错误而崩溃,具体取决于我想要进行置换的深度。
我最初认为解决方案是清空列表并重新启动,但这样做会导致索引越界错误。
这是我目前的设置:
for j in range(0, csetlen):
getJ = None
for i in range(0, char_set_len):
getJ = word_list[j] + char_set[i]
word_list.append(getJ)
csetlen = csetlen - j
del word_list[j-1:]
word_list.append(getJ)
j=0
基本上,csetlen 可以是一个非常大的数字(超过 100,000,000)。当然,我没有足够的内存。所以我试图找出如何缩小外部for 循环中的列表。如何优雅地做到这一点?
内存错误与word_list 有关。目前,我正在存储数百万种不同的排列;我需要能够“回收”一些旧的列表值。如何对 python 列表执行此操作?
【问题讨论】: