Silentium est aurum

Пользователь

Регистрация: 27.04.2019

Сообщения: 3642

Рейтинг: 1720

Silentium est aurum

Регистрация: 27.04.2019

Сообщения: 3642

Рейтинг: 1720

Есть текстовый файл:

Спойлер: "text.txt"

Задача:

1. Прочесть файл, исключить все лишние символы ('#'   '…'   '—'   ','   '.')

2. Подсчитать сколько раз встречается в файле каждое слово

3. Вывести это все в список вида [("the", 4), ("or", 7)…], содержащий слово из текста и количество повторений для каждого слова.

 

 

Вообще не обязательно решать на питуне, скорее интересно посмотреть на сам алгоритм выполнения задачи, а то я дальше text = open('text.txt', encoding="utf-8") не ушел PepeCry.png.

kremennik

Куратор других игр и разного

Регистрация: 10.11.2011

Сообщения: 45466

Рейтинг: 27593

kremennik

Регистрация: 10.11.2011

Сообщения: 45466

Рейтинг: 27593

img

Ну а что тут может такого быть

Конвертируешь эту строку в массив символов, удаляешь все лишние. Или через replace все нежелательные символы на пустой

Потом через regex (а можно через split пробелом наверное как-то) типа /\S*/ ловишь все слова, добавляешь каждое слово в массив слов. И там считаешь повторение

 

Спойлер: "Базовые функции"

Scouser_AK

Пользователь

Регистрация: 21.06.2020

Сообщения: 4051

Рейтинг: -745

Нарушения: 110

Scouser_AK

Регистрация: 21.06.2020

Сообщения: 4051

Рейтинг: -745

Нарушения: 110

Очень сложная задача, думаю пора заканчивать с программированием. Тебя душат агенты, очевидно же

midorimaaoru

Пользователь

Регистрация: 12.05.2020

Сообщения: 18

Рейтинг: 0

midorimaaoru

Регистрация: 12.05.2020

Сообщения: 18

Рейтинг: 0

replace, одна из основных функций в питоне

Jaood

Пользователь

Регистрация: 09.09.2019

Сообщения: 3405

Рейтинг: 2051

Jaood

Регистрация: 09.09.2019

Сообщения: 3405

Рейтинг: 2051

Ну если не на питоне, то выглядело бы оно примерно вот так:

https://pastebin.com/S19aYKFV

Silentium est aurum

Пользователь

Регистрация: 27.04.2019

Сообщения: 3642

Рейтинг: 1720

Silentium est aurum

Регистрация: 27.04.2019

Сообщения: 3642

Рейтинг: 1720

Scouser_AK сказал(а):

Очень сложная задача, думаю пора заканчивать с программированием. Тебя душат агенты, очевидно же

Нажмите, чтобы раскрыть...

И откуда в тебе столько желчи?

Scouser_AK

Пользователь

Регистрация: 21.06.2020

Сообщения: 4051

Рейтинг: -745

Нарушения: 110

Scouser_AK

Регистрация: 21.06.2020

Сообщения: 4051

Рейтинг: -745

Нарушения: 110

Silentium est aurum сказал(а):

И откуда в тебе столько желчи?

Нажмите, чтобы раскрыть...

Ну просто такие задачи решаются самостоятельно, или хотябы когда что-то не вышло, задают вопросы)

Что тут сложного?

Silentium est aurum сказал(а):

1. Прочесть файл, исключить все лишние символы ('#'   '…'   '—'   ','   '.')

Нажмите, чтобы раскрыть...

Использовать функцию из языка, которая читает файл.

Silentium est aurum сказал(а):

2. Подсчитать сколько раз встречается в файле каждое слово

Нажмите, чтобы раскрыть...

Разбить текст по словам, положить в массив и сделать операции, которые тебе нужны.

Silentium est aurum сказал(а):
Вывести это все в список вида [("the", 4), ("or", 7)…], содержащий слово из текста и количество повторений для каждого слова.
Нажмите, чтобы раскрыть...

Знать базовые вещи программирвоания и положить в массив/коллекцию в данном формате значения

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

на путоне 

Цитата:
from collections import Counter

replaced_chars = ['#', '_', '.']

with open('my_file.txt', 'r') as f:

   text = f.read()

   for i in replaced_chars:

       text = text.replace(i, ' ')

   result = Counter(text.split())
Нажмите, чтобы раскрыть...

Silentium est aurum

Пользователь

Регистрация: 27.04.2019

Сообщения: 3642

Рейтинг: 1720

Silentium est aurum

Регистрация: 27.04.2019

Сообщения: 3642

Рейтинг: 1720

Scouser_AK сказал(а):

Ну просто такие задачи решаются самостоятельно, или хотябы когда что-то не вышло, задают вопросы)

Что тут сложного?

Использовать функцию из языка, которая читает файл.

Разбить текст по словам, положить в массив и сделать операции, которые тебе нужны.

Знать базовые вещи программирвоания и положить в массив/коллекцию в данном формате значения

Нажмите, чтобы раскрыть...

Одно дело просто составить алгоритм выполнения задачи у себя в уме, а вот реализовать его в коде - совсем другое, проблема была именно со вторым, но да ладно мне уже помогли в личке.

 

Тему можно закрывать.

Всем кто скинул свои пасты с кодом тоже спасибо.

Privet_pacanu

Пользователь

Регистрация: 31.08.2014

Сообщения: 247

Рейтинг: -47

Privet_pacanu

Регистрация: 31.08.2014

Сообщения: 247

Рейтинг: -47

https://pastebin.com/HtpdPh59 на js вроде должно вот так сработать.

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

Если интересует магия непосредственно Counter класса, то вот она (примерно):

Цитата:

def Counter(data):

   stack = {x: 0 for x in set(data)}

   for x in data:

       stack[x] += 1

   return stack

 

Нажмите, чтобы раскрыть...

Jaood сказал(а):

Ну если не на питоне, то выглядело бы оно примерно вот так:

https://pastebin.com/S19aYKFV

Нажмите, чтобы раскрыть...

а у вас Split(' ') с дефолт аргументом, разве не удаляет все пробелы?

Имею ввиду на на python при split(' ') - получишь пустышки в массиве (где было больее 1-го пробела), а вот при split() он их удалит все.

Jaood

Пользователь

Регистрация: 09.09.2019

Сообщения: 3405

Рейтинг: 2051

Jaood

Регистрация: 09.09.2019

Сообщения: 3405

Рейтинг: 2051

saw_tooth сказал(а):

а у вас Split(' ') с дефолт аргументом, разве не удаляет все пробелы?

Имею ввиду на на python при split(' ') - получишь пустышки в массиве (где было больее 1-го пробела)

Нажмите, чтобы раскрыть...

Старая привычка со школьных годов указывать явно разделитель.

 

saw_tooth сказал(а):

а вот при split() он их удалит все.

Нажмите, чтобы раскрыть...

Для такого нужно будет отдельно указывать параметр разделения RemoveEmptyEntries 

 

 

 

Do2K

Пользователь

Регистрация: 04.01.2014

Сообщения: 9132

Рейтинг: 1680

Do2K

Регистрация: 04.01.2014

Сообщения: 9132

Рейтинг: 1680

Silentium est aurum сказал(а):

Есть текстовый файл:

Спойлер: "text.txt"

Задача:

1. Прочесть файл, исключить все лишние символы ('#'   '…'   '—'   ','   '.')

2. Подсчитать сколько раз встречается в файле каждое слово

3. Вывести это все в список вида [("the", 4), ("or", 7)…], содержащий слово из текста и количество повторений для каждого слова.

 

Вообще не обязательно решать на питуне, скорее интересно посмотреть на сам алгоритм выполнения задачи, а то я дальше text = open('text.txt', encoding="utf-8") не ушел PepeCry.png.

Нажмите, чтобы раскрыть...

А я прочитал путине)))

Mihalos

Пользователь

Регистрация: 16.01.2016

Сообщения: 7901

Рейтинг: 3732

Mihalos

Регистрация: 16.01.2016

Сообщения: 7901

Рейтинг: 3732

Silentium est aurum сказал(а):

Тему можно закрывать.

Нажмите, чтобы раскрыть...

Закрыто.

Тема закрыта