1
我只有两个句子,我想产生变化和计算leveshtein距离,但是当试图用itertools产生这个列表时,即使我的64GB RAM机器过载。itertools产品使用太多的内存
有没有办法限制这一点,即使我必须将其限制在一定数量的组合中。
这里是到目前为止我的代码:
from __future__ import print_function
import itertools
import sys
in_file = sys.argv[1]
X = []
with open(in_file) as f:
lis = list(f)
X.append([' '.join(x) for x in itertools.product(*map(set, zip(*map(str.split, lis))))])
for x in X:
print x
Itertools没有使用那么多的内存。事实上,你将它转换为列表。 'itertools'懒惰地工作。 –