一个函数,它使用字符串和字符串列表,并返回列表中字符串的字符串中的所有单词

时间:2014-11-14 23:38:14

标签: python string list function python-3.3

我想定义一个函数find_anagrams_in_word_list(str,str_list),其中参数应该是字符串和字符串列表。返回的值应该是str_list中作为str值的所有字符串的列表。

我有一个简单的代码,可以让你看到一个单词是否是另一个单词的字谜

def anagram(str1,str2):
    str1 = sorted(str1)
    str2 = sorted(str2)
    if str1 == str2:
        print("True")
    else:
        print("False")

但我似乎无法理解如何将其用于列表。

修改

def anagram(str1,str2):
    str1 = sorted(str1)
    str2 = sorted(str2)
if str1 == str2:
    print("True")
else:
    print("False")

def find_anagrams_in_word_list(str1,str_list):
    anagrams = []
    for word in str_list:
        if word == str1:
            if (anagram(str1,word)):
                anagrams.append(word)
                print(anagrams)

我在创建此代码时已经做到了这一点,但如果它们是' str1'的字谜,则不是打印这些字词。它打印' []'我认为这意味着str_list中的单词没有附加到' anagrams'

我想要这样的输出

find_anagrams_in_word_list(" rat"," [art,tar,gar,jay]")

'艺术' '焦油'

因为它们是老鼠的字谜。

3 个答案:

答案 0 :(得分:0)

def anagram(str1,str2):
   str1 = sorted(str1)
   str2 = sorted(str2)
   if str1 == str2:
      return True
   else:
      return False

print [i for i in str_list if anagram(str,i)]

这里,str是要匹配的字符串,str_list是所有字符串的列表

修改

要将此功能转换为功能,请尝试以下操作:

def anagram(str1,str_list):
    str1 = sorted(str1)
    temp_list=[i for i in str_list if sorted(i)==str1]
    return temp_list

答案 1 :(得分:0)

def anagram(str1,str2):
    str1 = sorted(str1)
    str2 = sorted(str2)
    return str1 == str2 # will be True or False no need for if checks


def find_anagrams_in_word_list(str1,str_list):
    return " ".join([word for word in str_list if anagram(word,str1)]) 

print (find_anagrams_in_word_list("rat", ["art","tar","gar","jay"]))
art tar

if anagram(word,str1)检查传入的str1中的每个或列表,如果anagram返回True,则我们保留该字,最后" ".join输出所有单词列表作为单个字符串。

答案 2 :(得分:-1)

def anagram(my_str,my_list):
    result_list = []
    for item in my_list:
        if item == my_str:
            result_list.append(item)
    return result_list

然后你必须分配变量并将它们传递给你的函数

somestr = 's'
somelist = ['s','not s','m','etc','s']
my_anagram = anagram(somestr,somelist)

因此,您将获得包含匹配元素列表的变量my_anagram