当使用itertools重复大于15时,增加计算的哪些方法?
permutation.py
#import string
inputRepeat = input('>>> Enter repeat value. (int): ')
L = string.ascii_uppercase
i = list(''.join(x) for x in itertools.product(L, repeat=inputRepeat))
print i
当重复变大时,代码在以某种方式输出之前存储/计算到存储器中。带内存管理解决方案的优化版本的方法。
分享你的想法!
答案 0 :(得分:1)
取决于您使用列表元素的方式,您不需要将它们保留在内存中。这就是itertools
为你做的事情
import string
import itertools
inputRepeat = input('>>> Enter repeat value. (int): ')
L = string.ascii_uppercase
#i = list(''.join(x) for x in itertools.product(L, repeat=int(inputRepeat)))
#print(i)
for rep in itertools.product(L, repeat=int(inputRepeat)):
print(''.join(rep))
但问题的复杂性仍然存在......