【发布时间】:2015-06-06 03:41:58
【问题描述】:
当repeat大于15时,使用itertools有哪些增加计算的方法?
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
当重复变大时,代码在以某种方式输出之前存储/计算到内存中。使用内存管理解决方案优化版本的方法。
分享你的想法!
【问题讨论】:
-
我认为这是问题的本质。我很惊讶你没有在 repeat=15 时耗尽内存!
-
旁白:你对字母X有什么看法? (如果您打算包含所有大写字母,则应改用
string.ascii_uppercase,以避免出现此类问题。) -
当重复较大时,我从其他用户那里进行了一些研究,我收集到这不是代码;从目前的角度来看,它是有效的。是否有方法可以用于部分迭代,例如一次 X 次排列,然后在完成后继续到下一个数量?
-
感谢帝斯曼的提示!
-
您正在尝试列出超过一千亿的事物。这永远行不通;解决方案是找到一种非暴力的方式来做任何你想用这个列表做的事情。
标签: python algorithm performance permutation itertools