Условия задачи:
Словарный индекс. Напишите программу, которая читает содержимое текстового файла. Программа должна создать словарь, в котором пары "ключ : значение" описаны следующим образом:
•ключ -ключами являются отдельные слова в файле;
•значение - каждое значение является списком, который содержит номера строк в файле, где найдено слово (ключ).
Например, предположим, что слово "робот" найдено в строках 7, 18, 94 и 138. Словарь будет содержать элемент, в котором ключом будет строковое значение "робот", а значением -список, содержащий номера 7, 18, 94 и 138.
После создания словаря программа должна создать еще один текстовый файл, называемый словарным индексом, в котором приводится содержимое словаря. Словарный индекс должен содержать список слов в алфавитном порядке, хранящихся в словаре
в качестве ключей, и номера строк, в которых эти слова встречаются в исходном файле.
Решение задачи:
file ='Kennedy.txt'
with open(file, 'r') as file_out:
file_list = [i.rstrip() for i in file_out]
file_list1=[]
for i in file_list:
i = i.split()
for c in i:
file_list1.append(c)
unic_word = set(file_list1)
dict_word = {}
index_list = []
for i in unic_word:
index_list = []
for c in file_list:
for x in c.split():
if x == i:
index_list.append(file_list.index(c)+1)
break
dict_word[i] = index_list
with open('Kennedy1.txt', 'w') as out_file:
for i in sorted([x for x in dict_word]):
out_file.write(f'{i} : {dict_word[i]}' + '\n')