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

Словарь: разбить строку на слова и сохранить слова и места, где они встречаются

23.11.2014, 22:50. Показов 8360. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток,форумчане.
Формулирую задачу.
Разбить строку на слова и сохранить слова и места, где они встречаются

Подскажите как данный алгоритм можно реализовать.Спасибо!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2014, 22:50
Ответы с готовыми решениями:

Как разбить строку на слова и записать в массив только 4-х буквенные слова
Как разбить строку на слова и записать в массив только 4-х буквенные слова? Максимальная длина текста 250 символов. Разделителем считать...

Разбить каждую строку на отдельные слова , а слова по буквам в алфавитном порядке
using System; class Program { public static void Main() { const string s = "My name is Vika"; ...

Разбить строку на слова перед запятой и занести слова в ступенчатый массив
Условия задачи: Пользователь вводит текст вручную Можно использовать циклы(if foreach while.....) Нельзя использовать Split ...

9
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
24.11.2014, 00:17
Не знаю, что ты подразумевал под сохранением места, но если правильно понят тебя, то как-то так
Python
1
2
3
4
5
string = 'привет это какая-то строка'
result = {}
for index, element in enumerate(string.split()):
    result[index] = element
print(result)
Добавлено через 2 минуты
В тройке тоже самое, можно ещё сделать так
Python
1
2
3
string = 'привет это какая-то строка'
result = {index: element for index, element in enumerate(string.split())}
print(result)
1
 Аватар для sigmov
585 / 372 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
24.11.2014, 03:42
Лучший ответ Сообщение было отмечено Wilhelm_Art как решение

Решение

Python
1
2
3
4
import re
text = 'что где когда-то нафиг';
result = {m.start(0): m.group(0) for m in re.finditer(r"\b[^\s]+\b", text)}
print(result)
0
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 40
24.11.2014, 15:37  [ТС]
Задача непростая
Более подробно нужно сделать вот так

Основная задача:
Разбить строку на слова и сохранить слова и места, где они встречаются.

Разобьем задачу на части (декомпозиция):
1. Научиться выделять слова. Слова - это символы, разделенные символами-разделителями (separators)
2. Научиться сохранять выделенные слова.
3. Научиться выделять позиции каждого слова.

1. Нучиться выделять слова:
1.1. Научиться "пробежать" по строке - перебрать все ее символы по порядку
Если есть переменная строка с именем str, то перебрать ее символы - это выполнить цикл
for s in str:
...
при этом s - это переменная на каждом шаге цикла хранящая текущий символ
1.2. Научиться определять является ли символ разделителем
Если есть строка, содержащая символы sep, и строка s, которую мы хотим проверить на вхождение в sep, то необходимо выполнить
if s in sep:
...
else:
...
1.3. Научиться по началу и концу строки выделить слово
Если есть есть строка str и есть индекс начала begin и конца end, то подстроку можно получить
str[begin:end]

str = "abcdef"
print str[2:4]
Будет выведено 'cd'. Индексация в строках, списках начинается с 0
1.4. Логические переменные
Л.П. - принимаю значения True или False
foo = True
if foo:
...
if not foo and True or False:
...

2. Сохранение в словарь
2.1. Создание пустого словаря
x = {}
2.2. Добавление нового ключа в словарь
x[3] = "abc"
x["abc"] = 5

{3: 'abc', 'abc': 5}
2.3. Проверка на наличие ключа в словаре
x.has_key('3') —-> False
x.has_key(3) —-> True
2.4. Изменение значения по ключу
x['abc'] = x[3]
по ключу 'abc' станет тоже самое, что и по ключу 3

3. Подсказка: завести переменные -
- текущая позиция
- позиция начала текущего слова
- булевая переменная, означающая "сейчас внутри слова"
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
24.11.2014, 15:52
Wilhelm_Art, написано предельно подробное руководство к действию. Какие конкретно вопросы возникают?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
24.11.2014, 15:53
Wilhelm_Art, Тебе уже это сделал sigmov
0
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 40
24.11.2014, 16:09  [ТС]
я только начал разбираться,пока нихрена непонятно

Добавлено через 53 секунды
мне непонятен код,проще есть я только начал прогать
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
24.11.2014, 16:30
Цитата Сообщение от Wilhelm_Art Посмотреть сообщение
я только начал разбираться,пока нихрена непонятно
То что ты скинул это прямое указание к действиям, подробнее уж некуда, только если написать код за тебя.
Тебе разобраться надо или препод не принимает вариант который тебе предложил sigmov, и требует по тупому делать?

Если ты сам хочешь понять, то просто сядь и начинай разбираться как работает тот или оной оператор, они у тебя перечислены в методичке, тебе их только в кучу собрать и все.
0
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 40
24.11.2014, 17:02  [ТС]
Он пошлет меня куда подальше если я принесу ему такой короткий код от sigmov,т.к. он знает что я еще не шарю,поэтому прошу вас помочь,чтобы начать разбирать подробно каждый оператор
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
24.11.2014, 17:26
Цитата Сообщение от Wilhelm_Art Посмотреть сообщение
поэтому прошу вас помочь,чтобы начать разбирать подробно каждый оператор
На этих 2 ресурсах можно быстро ознакомится с основами http://pythonworld.ru/karta-sajta http://younglinux.info/python.php
У тебя описаны операторы в методичке и методы, а на этих ресурсах можешь найти их описание и примеры.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2014, 17:26
Помогаю со студенческими работами здесь

Разбить строку на слова (strtok) и сравнить эти слова со словом из Edit-a
Доброго времени суток, господа! Есть строка, её нужно разбить на слова и сравнить эти слова со словом из Edit'a Программа виснет, что...

Разбить строку на слова, добавить эти слова в массив строк
Привет всем! Понадобилось решить одну простенькую задачку: Разбить строку на слова, добавить эти слова в массив строк, вывести...

Разбить строку на слова и вставить эти слова в ячейки на листе
Подскажите как в Excel разбить строку на слова. Например: есть фраза "Шла собака по роялю" и эту фразу надо разбить на слова и...

Разбить строку (слова идут через запятую) на отдельные слова.
Хочу реализовать на сайте поиск по ключевым словам. Ключевые слова хочу вводить в 1 форму через запятые, как мне их потом разбить на...

Разбить строку на слова учитывая знаки препинания как слова
разбить строку на слова учитывая символи" ?, ! ; ." как слова Не знаю как это сделать


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru