Страницы

Поиск по вопросам

суббота, 29 декабря 2018 г.

Последовательное чтение значений из списка в словарь

Здраствуйте. Есть готовый список, который содержит слова в определенной последовательности: 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 не поддерживает упорядочивание записей по умолчанию.

Комментариев нет:

Отправить комментарий