我正在为游戏刽子手编写代码。我被困在我希望帮助用户获得提示的部分。
我需要创建一个接受word list
和当前pattern
的函数(例如:" ___ e _")并返回单词中的most common letter
列表。
我知道我需要计算每个单词中的字母,然后返回该单词列表的最大值,但我不太清楚如何实际执行此操作。
我从编写此代码开始:
def choose_letter(words, pattern):
new_list = [0] * 26
for i in range(0, 26):
for n in range(0, len(num_list)):
if i == num_list[n]:
new_list[i] += 1
return new_list
但是我被卡住了,因为我不知道如何将它与信件进行实际比较。
我希望听到一些有助于我继续进行的建议或指导。
*我们还没有了解字典
答案 0 :(得分:0)
显而易见的答案是使用字母作为键的字典。您还可以使用ord(char)从字符中获取整数,并将该整数用作列表的索引。 因为您的列表长度为26,字母索引从97开始(对于小写' a'),您可以执行以下操作:
def choose_letter(words, pattern):
new_list = [0] * 26
for word in words:
word = word.lower()
for letter in word:
index = ord(letter) -97
new_list[index] += 1
return new_list
要获得列表中任何给定字母的计数,您可以:
print(new_list[ord(letter)])
获取最常见的字母(请注意,如果多个字母具有最高值,则只返回第一个字母):
chr(new_list.index(max(new_list)))