函数scoreList(Rack)接受一个字母列表。您还将获得一个全局变量字典:["a", "am", "at", "apple", "bat", "bar", "babble", "can", "foo", "spam", "spammy", "zzyzva"]
。在
使用字母列表查找字典中所有可能的单词。对于每个可以生成的单词,也可以使用scrabbleScore找到该单词的分数。在
拼字得分=
[ ["a", 1], ["b", 3], ["c", 3], ["d", 2], ["e", 1],
["f", 4], ["g", 2], ["h", 4], ["i", 1], ["j", 8],
["k", 5], ["l", 1], ["m", 3], ["n", 1], ["o", 1], ["p", 3],
["q", 10], ["r", 1], ["s", 1], ["t", 1], ["u", 1], ["v", 4],
["w", 4], ["x", 8], ["y", 4], ["z", 10] ]
我可以使用由列表理解(map、filter、reduce等)、if语句和for循环组成的表达式,但前提是它们是在列表理解的上下文中。在
示例:
^{pr2}$它们呈现的顺序并不重要。它还必须是一个列表,而不是dic。如果你能让我更好地理解如何在这个问题中使用map或filter,我会很乐意为这个问题提供一些帮助。在
霉菌:
def scoreList(Rack):
test = [x for x in Dictionary if all(y in Rack for y in x)]
return test
输出:
>>> scoreList(["a", "s", "m", "t", "p"])
['a', 'am', 'at', 'spam']
如你所见,我能找到歌词,但没有找到乐谱。不使用dict怎么能找到它?在
下面是实现此目的的示例代码:
您可以使用
itertools
从一组字符中生成所有可能的单词排列,但请注意,如果您的输入列表变大,这将是一个耗时且消耗内存的过程。在相关问题 更多 >
编程相关推荐