从文本文件中打印给定字符串的所有字谜
Printing all anagrams of a given string from a text file
我正在编写一个程序,该程序从文本文件中获取输入字符串并在列表中打印出该字符串的所有字谜。
到目前为止,我得到了以下信息;但是什么都没有返回,我不太明白为什么。
def anagrams( s1, s2 ):
s1_list = list(s1.lower())
s1_list.sort()
s2_list = list(s2.lower())
s2_list.sort()
if s1.lower() == s2.lower():
return(False)
elif s1_list == s2_list:
return(True)
else:
return(False)
def find_all_anagrams( string ):
anagrams_list = []
with open("english_words.txt", "r") as fileObject:
line = fileObject.readline()
if anagrams(string, line):
anagrams_list.append(line)
return anagrams_list
您需要遍历 english_words.txt
中的所有单词(我假设每行一个)。在调用 anagrams()
.
之前,您还需要从每个单词中删除所有换行符
def find_all_anagrams( string ):
anagrams_list = []
with open("english_words.txt", "r") as fileObject:
for line in fileObject: # check all lines
word = line.strip() # strip newline characters
if anagrams(string, word):
anagrams_list.append(word)
return anagrams_list # finally return results
我正在编写一个程序,该程序从文本文件中获取输入字符串并在列表中打印出该字符串的所有字谜。
到目前为止,我得到了以下信息;但是什么都没有返回,我不太明白为什么。
def anagrams( s1, s2 ):
s1_list = list(s1.lower())
s1_list.sort()
s2_list = list(s2.lower())
s2_list.sort()
if s1.lower() == s2.lower():
return(False)
elif s1_list == s2_list:
return(True)
else:
return(False)
def find_all_anagrams( string ):
anagrams_list = []
with open("english_words.txt", "r") as fileObject:
line = fileObject.readline()
if anagrams(string, line):
anagrams_list.append(line)
return anagrams_list
您需要遍历 english_words.txt
中的所有单词(我假设每行一个)。在调用 anagrams()
.
def find_all_anagrams( string ):
anagrams_list = []
with open("english_words.txt", "r") as fileObject:
for line in fileObject: # check all lines
word = line.strip() # strip newline characters
if anagrams(string, word):
anagrams_list.append(word)
return anagrams_list # finally return results