Функция scoreList (Rack) принимает список букв. Вам также предоставляется глобальная переменная. Словарь: ["a", "am", "at", "apple", "bat", "bar", "babble", "can", "foo", "spam", "spammy", "zzyzva"]
.Учитывая словарь и список букв, найдите все возможные слова, которые могут быть созданы с помощью букв.
Использование списка букв содержит все возможные слова, которые могут быть сделаны с буквами, которые находятся в словаре. Для каждого слова, которое можно сделать, также найдите оценку этого слова, используя scrabbleScore.
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] ]
можно использовать выражение, составленное из списковых (карты, фильтр, уменьшить и т.д.), если заявления, и петлю, но только если они находятся в контексте списка понимание.
Пример:
>>> scoreList(["a", "s", "m", "t", "p"])
[['a', 1], ['am', 4], ['at', 2], ['spam', 8]]
>>> scoreList(["a", "s", "m", "o", "f", "o"])
[['a', 1], ['am', 4], ['foo', 6]]
Порядок, в котором они представлены, не имеет значения. Он также должен оставаться списком, а не диктом. Хотелось бы немного помочь с этой проблемой, или если бы вы могли лучше понять, как использовать карту или фильтр в этой проблеме.
MyCode:
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?
Каковы цифры в вашем примере? –
К сожалению нет, я думаю, что, возможно, неправильно сформулировал свою проблему. Вы вводите свой собственный список писем, любых букв. Любое слово из Словаря, которое может быть сделано с буквами, выводится вместе со своим счетом. Также я забыл сказать, что он должен оставаться списком. Извините за недопонимание. –