여기에 제 작업 코드가 있습니다. 유효한 단어를 빨리 찾는 방법을 찾으려고 노력하고 있습니다. 각 단어에 대해 별도의 사전 목록을 만드는 것에 대해 생각하고있었습니다. yall은 무엇을 생각합니까?순열을 빨리 만드는 데 도움이 필요합니다.
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