查找单词列表中最常见的字母

时间:2016-12-05 13:41:03

标签: python

我正在为游戏刽子手编写代码。我被困在我希望帮助用户获得提示的部分。

我需要创建一个接受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

但是我被卡住了,因为我不知道如何将它与信件进行实际比较。

我希望听到一些有助于我继续进行的建议或指导。

*我们还没有了解字典

1 个答案:

答案 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)))