Я должен написать функцию, основанную на открытом файле, который содержит одно строчное слово в строке. Я должен вернуть словарь с ключами в одну строчные буквы, и каждое значение представляет собой список слов из файла, который начинается с этой буквы. (Ключи в словаре взяты только из букв слов, которые появляются в файле.)
Это мой код:
def words(file):
line = file.readline()
dict = {}
list = []
while (line != ""):
list = line[:].split()
if line[0] not in dict.keys():
dict[line[0]] = list
line = file.readline()
return dict
Однако, когда я тестировал его сам, моя функция, похоже, не возвращала все значения. Если существует более двух слов, начинающихся с определенной буквы, в качестве значений в выходных данных отображается только первое. Что я делаю не так?
Например, файл должен вернуть:
{'a': ['apple'], 'p': ['peach', 'pear', 'pineapple'], \
'b': ['banana', 'blueberry'], 'o': ['orange']}, ...
... но возвращается ...
{'a': ['apple'], 'p': ['pear'], \
'b': ['banana'], 'o': ['orange']}, ...