使用Python判断两个单词是否包含相同的字母
Using Python to identify if two words contain the same letter
要解决的问题:
Write a function that will find all the anagrams of a word from a list. You will be given two inputs a word and an array with words. You should return an array of all the anagrams or an empty array if there are none.
已测试解决方案:
a = ['aabb', 'abcd', 'bbaa', 'dada']
b = ['abab']
listA = []
sorted_defaultword = sorted(b[0])
print (sorted_defaultword)
for i in range (len(a)):
#print(a[i])
sorted_word = sorted(a[i])
#print (sorted_word)
if (sorted_word == sorted_defaultword):
listA.append(a[i])
print (listA)
测试输出:
['a', 'a', 'b', 'b']
['aabb', 'bbaa']
使用测试,然后我尝试编写我的函数,但显然它不会工作。有人可以提出原因吗:
def anagrams(word, words):
sorted_defaultword = sorted(word[0])
anagram_List = []
for i in range (len(words)):
sorted_word = sorted(words[i])
if (sorted_word == sorted_defaultword):
anagram_List.append(words[i])
return anagram_List
为什么我把它放在一个函数中会失败?
您向函数传递了错误的参数。
Test.assert_equals(anagrams('abba', ['aabb', 'abcd', 'bbaa', 'dada']), ['aabb', 'bbaa']
在这里,您将第一个参数作为字符串传递。而函数需要一个列表。
将您的代码更改为:
Test.assert_equals(anagrams(['abba'], ['aabb', 'abcd', 'bbaa', 'dada']), ['aabb', 'bbaa']
请注意,我刚刚在列表中传递了 'abba',因为您的函数希望它是一个列表。
如果您想使用以前的代码,请从您的函数中将此行 sorted_defaultword = sorted(word[0])
更改为 sorted_defaultword = sorted(word)
这应该可以完成工作...
要解决的问题:
Write a function that will find all the anagrams of a word from a list. You will be given two inputs a word and an array with words. You should return an array of all the anagrams or an empty array if there are none.
已测试解决方案:
a = ['aabb', 'abcd', 'bbaa', 'dada']
b = ['abab']
listA = []
sorted_defaultword = sorted(b[0])
print (sorted_defaultword)
for i in range (len(a)):
#print(a[i])
sorted_word = sorted(a[i])
#print (sorted_word)
if (sorted_word == sorted_defaultword):
listA.append(a[i])
print (listA)
测试输出:
['a', 'a', 'b', 'b']
['aabb', 'bbaa']
使用测试,然后我尝试编写我的函数,但显然它不会工作。有人可以提出原因吗:
def anagrams(word, words):
sorted_defaultword = sorted(word[0])
anagram_List = []
for i in range (len(words)):
sorted_word = sorted(words[i])
if (sorted_word == sorted_defaultword):
anagram_List.append(words[i])
return anagram_List
为什么我把它放在一个函数中会失败?
您向函数传递了错误的参数。
Test.assert_equals(anagrams('abba', ['aabb', 'abcd', 'bbaa', 'dada']), ['aabb', 'bbaa']
在这里,您将第一个参数作为字符串传递。而函数需要一个列表。
将您的代码更改为:
Test.assert_equals(anagrams(['abba'], ['aabb', 'abcd', 'bbaa', 'dada']), ['aabb', 'bbaa']
请注意,我刚刚在列表中传递了 'abba',因为您的函数希望它是一个列表。
如果您想使用以前的代码,请从您的函数中将此行 sorted_defaultword = sorted(word[0])
更改为 sorted_defaultword = sorted(word)
这应该可以完成工作...