這裏是我的工作代碼,我試圖找到方法使其更快地找到有效的單詞,我正在考慮可能爲每個單詞做單獨的詞典列表,你覺得怎麼樣?需要幫助使排列更快
import random
import itertools
file_name='words.txt'
def load_words():
try:
f=open(file_name,'r')
str1=f.read()
f.close()
except:
print('Problem opening the file',file_name)
list1=[]
list1=str1.split()
return(list1)
def is_valid(str1,list1):
valid=False
if str1 in list1:
valid=True
return valid
def generate(words,letters):
answers=[]
for length in range(2,len(letters)+1):
for x in itertools.permutations(letters,length):
word=''
for let in x:
word+=let
if is_valid(word.upper(),words):
answers.append(word)
print(word)
print(answers)
def main():
words=load_words()
letters = input('Enter your letters')
answers = generate(words,letters)
main()
感謝您的評論,我不覺得它有什麼快速的,如果你拿着這個程序並運行7個以上的字母輸入,你會發現它很慢。 –
它比列表快一個數量級。 –
@BrandonRutledge:不要依賴'感覺'來優化程序。使用'timeit'模塊來測試這些假設。 (http://docs.python.org/library/timeit.html) – Kylotan