Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
tri_d |
14.12.2014, 17:20
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 14.12.2014 Пользователь №: 4292 Спасибо сказали: 0 раз(а) Репутация: 0
|
Здравствуйте. Есть текст. Получаю список всех слов методом text.split(' '). На основании данного списка хотелось бы получить другой список следующего вида - слово1(n), слово2(m), cлово3(o). В скобках указано, сколько раз конкретное слово встречается в исходном списке. Как это можно сделать? Дайте какие-нибудь идеи
|
|
|
|
|
lanz |
14.12.2014, 21:32
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8
|
Посчитать количество вхождений каждого слова в список.
Для хранения количества слов можно использовать QHash или QMap Link Link В качестве ключей использовать слова, в качестве значений - количество вхождений. Пройти список от начала к концу, для каждого слова, если оно есть в списке добавлять 1 к значению, а если нет, то добавлять такой ключ со значением 1. Потом пройти по контейнеру(QHash или QMap) и для каждого ключа составить строку, используя Link Каждую такую строку добавить к результирующему списку. |
|
|
|
|
tri_d |
14.12.2014, 23:01
Сообщение
#3
|
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 14.12.2014 Пользователь №: 4292 Спасибо сказали: 0 раз(а) Репутация: 0
|
Спасибо, попробуем
Цитата(lanz @ 14.12.2014, 23:32) Link добавлять 1 к значению, вот это не понял, как сделать Цитата(tri_d @ 15.12.2014, 0:55) Link Спасибо, попробуем Цитата(lanz @ 14.12.2014, 23:32) Link добавлять 1 к значению, вот это не понял, как сделать вроде так |
|
|
|
|
tri_d |
15.12.2014, 17:49
Сообщение
#4
|
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 14.12.2014 Пользователь №: 4292 Спасибо сказали: 0 раз(а) Репутация: 0
|
Вот код
Вот что получается ![]() Цифра в скобках (it.value) почему-то одинаковая для всех слов или так ![]() Показываются значки |
|
|
|
|
lanz |
15.12.2014, 20:10
Сообщение
#5
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8
|
Так нельзя, у QString нет перегруженного оператора + для целых, поэтому тут число используется как адрес
Можно так Первый ваш вариант был правильный
|
|
|
|
|
tri_d |
15.12.2014, 22:17
Сообщение
#6
|
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 14.12.2014 Пользователь №: 4292 Спасибо сказали: 0 раз(а) Репутация: 0
|
Вроде разобрался. Оказалось, вот как надо -
|
|
|
|
|
lanz |
15.12.2014, 23:11
Сообщение
#7
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8
|
Вместо этого цикла
Можно использовать |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 28.12.2025, 22:44 |