Python - 提高Itertools排列计算的性能速度;重复= 15

时间:2015-06-06 03:41:58

标签: python algorithm performance permutation itertools

当使用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

当重复变大时,代码在以某种方式输出之前存储/计算到存储器中。带内存管理解决方案的优化版本的方法。

分享你的想法!

1 个答案:

答案 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))

但问题的复杂性仍然存在......