Здраствуйте. Есть готовый список, который содержит слова в определенной последовательности:
list = ['To', 'be', 'or', 'not', 'to', 'be']
Требуется подсчитать частоту появления слов в этом списке и составить словарь, который содержит пары значений (слово) : (кол-во повторений этого слова).
Вот мой код:
# -*- coding: utf-8 -*-
list = ['To', 'be', 'or', 'not', 'to', 'be']
counts = dict()
for word in list:
if word not in counts: # Если символа нет в словаре, создаем новую запись
counts[word] = 1
else: # В противном случае инкрементируем d[c]
counts[word] += 1
print counts
Подсчет слов ведется правильно.
Проблема в том, что моя программа помещает новые записи в словарь в хаотичном порядке, а не так, как слова шли в предложении. Вот что интерпретатор выдает на выходе:
{'not': 1, 'To': 1, 'or': 1, 'to': 1, 'be': 2}
А должно быть так:
{'To': 1, 'be': 2, 'or': 1, 'not': 1, 'to': 1}
Как можно получить такой результат? Никак не могу монять.
P.S.: В Python я новичок, поэтому не судите строго.
Ответ
Вам нужен OrderedDict, Dict не поддерживает упорядочивание записей по умолчанию.
Комментариев нет:
Отправить комментарий