Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 26.12.2012
Сообщений: 17

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

02.03.2015, 19:23. Показов 3823. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте. Есть готовый список, который содержит слова в определенной последовательности:
Python
1
list = ['To', 'be', 'or', 'not', 'to', 'be']
Требуется подсчитать частоту появления слов в этом списке и составить словарь, который содержит пары значений (слово) : (кол-во повторений этого слова).
Вот мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
# -*- coding: utf-8 -*-
 
list_of_sl = ['To', 'be', 'or', 'not', 'to', 'be']
 
counts = dict()
for word in list_of_sl:
    if word not in counts: # Если символа нет в словаре, создаем новую запись
        counts[word] = 1
    else: # В противном случае инкрементируем d[c]
        counts[word] += 1
 
print counts
Подсчет слов ведется правильно.
Проблема в том, что моя программа помещает новые записи в словарь в хаотичном порядке, а не так, как слова шли в предложении. Вот что интерпретатор выдает на выходе:
Python
1
{'not': 1, 'To': 1, 'or': 1, 'to': 1, 'be': 2}
А должно быть так:
Python
1
{'To': 1, 'be': 2, 'or': 1, 'not': 1, 'to': 1}
Как можно получить такой результат? Никак не могу монять.
P.S.: В Python я новичок, поэтому не судите строго.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2015, 19:23
Ответы с готовыми решениями:

Запись и чтение из бинарного файла списка из bool значений БЕЗ МОДУЛЯ pickle
У меня есть список из bool-переменных, и я хочу как то записать его в бинарный файл, не используя pickle. При этом, что бы я мог потом...

Последовательное чтение из файла
Ребята, выручайте. Есть текстовый файл вида 3 {k} 5 {n} 1 2 3 4 5 3 0 0 0 7 1 1 1 1 1 1 1

Последовательное чтение из файла, взаимодействуя с кнопкой
Здравствуйте, делаю проект, в котором вывожу столбчатый график. Значение каждого столбца, а также дата, считывается из файла с...

4
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
02.03.2015, 20:30
Для справки тебе: "Словарь это неупорядоченная коллекция, то есть элементы там расположены в хаотичном порядке.".

Добавлено через 1 минуту
Если нужен упорядоченный словарь, то используй collectionsOrderedDict http://pythonworld.ru/moduli/m... tions.html
1
2 / 2 / 0
Регистрация: 26.12.2012
Сообщений: 17
02.03.2015, 20:50  [ТС]
alex925, спасибо, уже попытался его использовать. Вот переделанный код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-
 
list = ['To', 'be', 'or', 'not', 'to', 'be']
 
from collections import OrderedDict
counts = OrderedDict()
for word in list:
    if word not in counts: # Если символа нет в словаре, создаем новую запись
        counts[word] = 1
    else: # В противном случае инкрементируем d[c]
        counts[word] += 1
 
print counts
Теперь на выходе я получаю
Python
1
OrderedDict([('To', 1), ('be', 2), ('or', 1), ('not', 1), ('to', 1)])
Но опять наткнулся на проблему: по условию задачи, полученный на выходе словарь сравнивается с эталонным словарем (образцом), который имеет вид:
Python
1
{'To': 1, 'be': 2, 'or': 1, 'not': 1, 'to': 1}
Моя же программа на выходе выдает не словарь, а пары значений вида
Python
1
OrderedDict([('To', 1), ('be', 2), ('or', 1), ('not', 1), ('to', 1)])
поэтому сравнение словарей возвращает false.

Вопрос: как теперь преобразовать эти пары значений в нормальный словарь?
Я попробовал "в лоб", написав в конце программы:
Python
1
2
...
print dict(counts)
В итоге опять получил неупорядоченный словарь:
Python
1
{'not': 1, 'To': 1, 'or': 1, 'to': 1, 'be': 2}
Подскажите пожалуйста, как с этим справится
0
23 / 23 / 16
Регистрация: 17.01.2014
Сообщений: 81
02.03.2015, 22:46
А зачем вам сохранять порядок слов из списка?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
02.03.2015, 23:01
Сравнивайте с эталонным словарем, даже если у Вас "в другом порядке"

Python
1
2
3
4
5
6
7
8
9
>>> ETALON = {'To': 1, 'be': 2, 'or': 1, 'not': 1, 'to': 1}
>>> YOUDIC = {'not': 1, 'To': 1, 'or': 1, 'to': 1, 'be': 2}
>>> BADDIC = {'To': 1, 'be': 2, 'or': 8, 'not': 3, 'to': 6}
>>>
>>> ETALON == YOUDIC
True
>>> ETALON == BADDIC
False
>>>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.03.2015, 23:01
Помогаю со студенческими работами здесь

NIO последовательное чтение и запись в SocketChannel
Добрый день. Возникла небольшая проблема при работе с NIO. Ситуация такая: Есть сервер и клиент. Работает все через NIO. Клиент...

Последовательное вычисление чисел из списка
Добрый вечер! Подскажите, как можно реализовать функцию, которая берет из списка одно число, вычисляет его допустим до 0, затем...

Последовательное сравнение значений в столбце
Добрый день! Задача следующего рода: Есть тиковый массив валюты за несколько лет (год ~ 40-45 млн строк, 2 столбца - время до долей...

Последовательное суммирование значений в диапазоне
Доброго времени суток! Ежедневно выгружаю с полсотни заказов из некоего общего списка в отдельный файл с последующей их нарезкой на...

Сортировка списка значений словаря, по номеру заголовка, элемента списка значений
Ёу. Сижу программирую такой, и не получается отсортировать словарик мой. private static Dictionary<Classic,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru