私はこれに数週間取り組んでおり、Pythonのメモリリークに関する多くの質問を読みましたが、それを理解することはできません.
約 700 万行を含むファイルがあります。行ごとに辞書を作成する必要があります。したがって、これは次のような辞書のリストです。
[{'a': 2, 'b':1}{'a':1, 'b':2, 'c':1}]
私がしていることは...
list = []
for line in file.readlines():
terms = line.split(" ")
dict = {}
for term in terms:
if term in dict:
dict[term] = dict[term] + 1
else:
dict[term] = 1
list.append(dict.copy())
dict.clear()
file.close()
問題は、これを実行すると、常に 6000000 行目あたりで強制終了されることです。元々やってるだけだっdict = {}
たのですが、似たような投稿を読んでから dict.clear() をするように変更しましたが、何も改善しませんでした。循環参照について言及されているいくつかの投稿を知っていて、コードを調べましたが、その問題があるとは思いませんでした。
リストに 700 万の辞書を保存することは、Python では処理できないと思いますか? 殺されることなくすべてを実行する方法についてアドバイスをいただければ幸いです。
(バージョンは2.7.4です)