文字のさまざまな順列を行う 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 を超える) になる可能性があります。もちろん、これには十分な RAM がありません。for
そのため、外側のループでリストを縮小する方法を見つけようとしています。これを優雅に行うにはどうすればよいでしょうか。
メモリ エラーは に関係していword_list
ます。現在、何百万もの異なる順列を保存しています。古いリストの値の一部を「リサイクル」できるようにする必要があります。Pythonリストに対してこれを行うにはどうすればよいですか?