![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
tri_d |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 14.12.2014 Пользователь №: 4292 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте. Есть текст. Получаю список всех слов методом text.split(' '). На основании данного списка хотелось бы получить другой список следующего вида - слово1(n), слово2(m), cлово3(o). В скобках указано, сколько раз конкретное слово встречается в исходном списке. Как это можно сделать? Дайте какие-нибудь идеи
|
|
|
lanz |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Посчитать количество вхождений каждого слова в список.
Для хранения количества слов можно использовать QHash или QMap http://qt-project.org/doc/qt-4.8/qmap.html#details http://qt-project.org/doc/qt-4.8/qhash.html#details В качестве ключей использовать слова, в качестве значений - количество вхождений. Пройти список от начала к концу, для каждого слова, если оно есть в списке добавлять 1 к значению, а если нет, то добавлять такой ключ со значением 1. Потом пройти по контейнеру(QHash или QMap) и для каждого ключа составить строку, используя http://qt-project.org/doc/qt-4.8/qstring.html#arg Каждую такую строку добавить к результирующему списку. |
|
|
tri_d |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 14.12.2014 Пользователь №: 4292 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо, попробуем
добавлять 1 к значению, вот это не понял, как сделать
Спасибо, попробуем добавлять 1 к значению, вот это не понял, как сделать
вроде так |
|
|
tri_d |
![]()
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 14.12.2014 Пользователь №: 4292 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вот код
Вот что получается ![]() Цифра в скобках (it.value) почему-то одинаковая для всех слов или так ![]() Показываются значки |
|
|
lanz |
![]()
Сообщение
#5
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Так нельзя, у QString нет перегруженного оператора + для целых, поэтому тут число используется как адрес
Можно так
Первый ваш вариант был правильный
|
|
|
tri_d |
![]()
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 14.12.2014 Пользователь №: 4292 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вроде разобрался. Оказалось, вот как надо -
|
|
|
lanz |
![]()
Сообщение
#7
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Вместо этого цикла
Можно использовать
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 13.4.2025, 7:05 |