Python 优化一段代码,生成具有给定长度的所有可能单词
我写了一个程序,用一定数量的字母生成每个可能的单词,并将其全部写入一个文件。然而,我并不擅长优化代码,当我试图制作一个长度为7的程序时,程序会崩溃并自杀。这很烦人,因为我希望能够在多个小时/天内运行该程序,生成包含10个或更多字符的单词。 我仍然不太了解python,而且我以前从未有过一个程序彻底崩溃python外壳,所以我真的不知道该怎么做。有没有办法让这个程序运行更长的单词,或者甚至减慢它的速度,或者拆分列表,使它停止崩溃? 非常感谢 代码:Python 优化一段代码,生成具有给定长度的所有可能单词,python,Python,我写了一个程序,用一定数量的字母生成每个可能的单词,并将其全部写入一个文件。然而,我并不擅长优化代码,当我试图制作一个长度为7的程序时,程序会崩溃并自杀。这很烦人,因为我希望能够在多个小时/天内运行该程序,生成包含10个或更多字符的单词。 我仍然不太了解python,而且我以前从未有过一个程序彻底崩溃python外壳,所以我真的不知道该怎么做。有没有办法让这个程序运行更长的单词,或者甚至减慢它的速度,或者拆分列表,使它停止崩溃? 非常感谢 代码: 不要在内存中生成所有输出,并在最后写入。生成每个
不要在内存中生成所有输出,并在最后写入。生成每个项目后,立即将其写入。您是否估计了10个字符的字数?仅使用26个字母,它是26**10,因此约为1.4*10^15,这将占用约14000 TB。您希望将其存储在哪里?“…程序崩溃并自行终止”-请提供完整的错误回溯。
import string
import datetime
begin_time = datetime.datetime.now()
maxLen = int(input("Max Length: "))
baseAlpha = list(string.ascii_uppercase)
alphabet = list(string.ascii_uppercase)
print()
for i in range(maxLen-1) :
for i,v in enumerate(alphabet) :
alphabet[i] = [v]*26
for indexPerList,listValue in enumerate(alphabet) :
for indexInsideList,listIndexValue in enumerate(listValue) :
alphabet[indexPerList][indexInsideList] += baseAlpha[indexInsideList]
tempListAlphabet = []
for i in alphabet :
for j in i :
tempListAlphabet.append(j)
alphabet = tempListAlphabet
print(len(alphabet))
print(datetime.datetime.now() - begin_time)
f = open("output.txt","a")
for i in alphabet :
f.write(i + ' ')
f.close()