定义一个函数,为各种字符串python调用另一个函数

时间:2014-11-18 14:50:05

标签: python string function python-3.3

我有一个代码,可以在字典文件中找到字符串的字谜。我想创建一个函数来测试各种字符串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)]

1 个答案:

答案 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