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

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

23.11.2014, 22:50. Показов 8403. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru