Как сделать формирование индекса по первому символу слова?

def create_index(self):
    indexes = {}
    keywords = self.get_keyword_list()
    for kw in keywords:
        indexes[kw] = {}
    for file in self.get_file_list(self.get_dir_list()):
        file_text = open(file, 'r', encoding='utf-8')
        clean_file = re.sub(r'[^А-Яа-я0-9\n ]+', '', file_text.read())
        for i, word in enumerate(clean_file.split()):
            if word in keywords:
                if file not in indexes[word]:
                    indexes[word][file] = []
                indexes[word][file].append(i)
        file_text.close()
    with open('index.json', 'w', encoding='utf-8') as index_file:
        index_file.write(json.dumps(indexes, ensure_ascii=False, indent=2))
        index_file.close()

    messagebox.showinfo('Сообщение', 'Индекс создан')

def get_index_stats(self):
    words = []
    self.index_textbox.config(state='normal')
    self.index_textbox.delete(0.0, END)
    for i in self.keywords_listbox.curselection():
        words.append(self.keywords_listbox.get(i))
    index_file = open('index.json', 'r', encoding='utf8')
    index_json = json.loads(index_file.read())
    for word in words:
        if word in index_json:
            count = 0
            self.index_textbox.insert(INSERT, '%s' % word + '\n')
            for file in index_json[word]:
                self.index_textbox.insert(INSERT, str(file) + ': ' + str(index_json[word][file]) + '\n')
                count += len(index_json[word][file])
            self.index_textbox.insert(INSERT, 'Кол-во найденных вхождений: %d \n' % count)
            self.index_textbox.insert(INSERT, '----------------\n\n')
    self.index_textbox.config(state='disabled')

У меня есть список ключевых слов, мне нужно чтобы при выборе в списке допустим буквы «М» выводило все слова начинающиеся с этой буквы.


Ответы (0 шт):