Как сделать формирование индекса по первому символу слова?
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')
У меня есть список ключевых слов, мне нужно чтобы при выборе в списке допустим буквы «М» выводило все слова начинающиеся с этой буквы.