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

Перебор слов текста

23.03.2020, 13:20. Показов 8037. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
подскажите, пожалуйста, ну прям совсем новичку, почему при переборе слов текста не все одинаковые слова попадают в один словарь, при использовании приведенного метода?
понимаю, что возможно есть намного проще варианты, но хотелось бы понять суть данной проблемы.
заранее спасибо!


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
text = "которая которая которая ещё которая по ключу данных массив"
text2 = text.split(" ")
di2 = {}
 
def func(slovo):
    calc = 0
    for e in text2:
        if e == slovo:
            calc += 1
            text2.remove(e)
    di2 = {slovo:calc}
    print(di2)
    return text2
    #print('Удалили слово - ',slovo, 'раз - ', calc)
    #print('Итоговый лист после удаления - ', text2)
 
while len(text2) > 0:
    s = text2[0]
    #print("первый цикл ищет слово - ", s)
    #print('В листе - ', text2)
    func(s)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.03.2020, 13:20
Ответы с готовыми решениями:

Найти слова, перебор текста!
Доброго времени суток всем!!! Подскажите пожалуйста как написать на питоне программу которая будет из текстового документа извлекать все...

Перебор слов из слова
Мне нужен алгоритм для перебора всех вариантов слов из слова. Например, есть слово "колбаса" и этот алгоритм должен вернуть...

Перебор всевозможных комбинаций слов
Доброго времени суток, уважаемые форумчане! Прошу помочь с программой! Цель программы: перебор всевозможных комбинаций слов из...

5
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
23.03.2020, 13:33
А какая у вас задача?
В любом случае вы странный способ выбрали - зачем-то while и рекурсию использовали.
Цитата Сообщение от Tim08 Посмотреть сообщение
но хотелось бы понять суть данной проблемы.
Бесполезно объяснять почему не работает заведомо нелогичный способ.
Просто нужно сразу использовать привильный.
0
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 3
23.03.2020, 13:39  [ТС]
задача - посчитать кол-во повторяющихся слов в тексте.
логика была следующая: перебирая каждое слово находить их в данном тексте. После нахождения / не нахождения записать
с словарь "слово": число повторений + удалять проверенное слово и его повторы.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
23.03.2020, 13:54
Цитата Сообщение от Tim08 Посмотреть сообщение
посчитать кол-во повторяющихся слов в тексте.
Для этого есть простой логичный способ.
Словарь. Цикл по всем словам. Запись слова в словарь и инкрементация счетчика.
Python
1
2
3
4
cnt = {}
for word in list_words:
    cnt.setdefault(word, 0)
    cnt[word] += 1
Затем пройтись по ключам и проверить, что значение счетчика больше одного. Если правда - значит слово повторяется, считаем его.

Либо можно еще проще - за один цикл. Просто записываем слово в set (множество). Но сначала проверяем есть оно там или нет. Если есть, значит оно повторилось. Считаем его. И т.д.

Добавлено через 8 минут
Со словарем:
Python
1
2
3
4
5
6
7
8
9
>>> words = {}
>>> for word in text.split(" "):
    words.setdefault(word,0)
    words[word]+=1
 
 
>>> words
{'которая': 4, 'ещё': 1, 'по': 1, 'ключу': 1, 'данных': 1, 'массив': 1}
>>>
По данному словарю видно, что только одно слово имеет повторы.
Какие именно повторы хотели считать вы - не совсем ясно.
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
23.03.2020, 14:12
Цитата Сообщение от Tim08 Посмотреть сообщение
почему при переборе слов текста не все одинаковые слова попадают в один словарь,
Не хочу вникать подробно в Ваш, как правильно замечено не логичный способ. Но если я не ошибаюсь, у Вас слова являются ключами в словаре. А словарь не может содержать одинаковые ключи. Когда Вы пытаетесь добавить в словарь элемент с ключом, который у Вас уже есть в словаре, то не происходит добавления в словарь, а просто заменяется объект привязанный к ключу у уже существующего ключа в словаре на новый.
Хотя у Вас и нет добавления в словарь одинаковых слов, у Вас по моему Вы хотите посчитать количество одинаковых слов.
Но тогда запись
Python
1
di2 = {slovo:calc}
не верна. Так как она не добавляет новое слово в словарь, а присваивает переменной di2 новый словарь, состоящий из одного ключа (одного слова).
В общем, прежде чем что то обсуждать, напишите условие Вашей задачи и потом посмотрите в документации или в учебнике как работать со словарем, то есть добавлять новые ключи в словарь или изменять значения у уже существующих в словаре ключей.

Добавлено через 8 минут
Хотя Garry Galler, Вам уже написал решение. Но если Вы не почитаете теорию работы со словарями, то не поймете это решение.
0
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 3
23.03.2020, 15:59  [ТС]
Спасибо за инфо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.03.2020, 15:59
Помогаю со студенческими работами здесь

Перебор текста
Доброго времени суток, мне нужно написать функцию перебора строки, на обнаружение команд. искал про XML но так и ничего путного не нашел,...

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

как сделать правельный перебор слов !
Всем привет! Собственно хочу сделать перебор login/pass на ftp, есть словать - текстовый файл размер его 154 mb, в каждой строке одно...

Перебор комбинаций слов из определенного списка
public static void main(String args) { allword = readlistfromFile("fool"); word2 = readlistfromFile("word5"); ...

Перебор комбинаций слов из двух файлов
в общем, такая задача. есть 2 файла с словами, допустим: $f1=file("1.txt"); $f2=file("2.txt"); нужно обойти все комбинации слов...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru