我有一个代码,可以在字典文件中找到字符串的字谜。我想创建一个函数来测试各种字符串test_find_anagrams()。它应该测试至少6个不同的字符串。
这是我测试文件中单个字符串的代码。
def anagram(str1,str2):
str1 = sorted(str1)
str2 = sorted(str2)
return str1 == str2
def get_dictionary_word_list():
with open('dictionarys.txt') as f:
return f.read().split()
def find_anagrams(str):
return [word for word in get_dictionary_word_list() if anagram(word,str)]
到目前为止,我有这个代码来测试不同的字符串,它适用于列表中的第一个字符串,但不会为之后的任何字符串返回任何内容。我需要在代码中添加什么才能使其工作?
def test_find_anagrams():
stringlist = [('aces'), ('sidebar'), ('adverb'), ('fuels'), ('hardset'), ('praised')]
for str1 in stringlist:
return [word for word in get_dictionary_word_list() if anagram(word,str1)]
答案 0 :(得分:0)
它只适用于#34;列表中的第一个字符串"因为你从循环内部返回。在循环之外跟踪您的结果。
def test_find_anagrams():
stringlist = [('aces'), ('sidebar'), ('adverb'), ('fuels'), ('hardset'), ('praised')]
result = []
for str1 in stringlist:
result.extend(word for word in get_dictionary_word_list() if anagram(word,str1))
return result