Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2023, 14:07   #1
Ninax007
Новичок
Джуниор
 
Регистрация: 19.01.2023
Сообщений: 2
По умолчанию Python биграммы

Есть код на нахождение биграмм в тексте, но с использованием collections, а как переделать его не используя collections?


Код:
import collections
with open("vstup.txt", "w") as file:
    text = file.write(str(input()))
    file.close()
with open("vstup.txt", "r") as file:
    text = file.read()
text = ''.join([c.lower() for c in text if c.isalpha() or c == ' '])
bigrams = [text[i:i+2] for i in range(len(text)-1) if text[i].isalpha() and text[i+1].isalpha()]
bigram_counts = collections.Counter(bigrams)
sorted_bigrams = sorted(bigram_counts.items(), key=lambda x: (-x[1], x[0]))
with open("vstup.txt", "w") as file:
    for bigram, count in sorted_bigrams:
        file.write(bigram + ' ' + str(count) + '\n')
print(open('vstup.txt').read())
Ninax007 вне форума Ответить с цитированием
Старый 19.01.2023, 21:57   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

В первом with close лишний, а последний open не имеет соответствующего close. А чтобы обойтись без Counter, то примерно так:
Код:
bigram_counts = {}
for bigram in bigrams:
    bigram_counts[bigram] = bigram_counts.get(bigram, 0) + 1
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Python - как установить Easy-Machine-Learning-Object-Detection при уже установленном Python 3.9 Krasi Общие вопросы по программированию, компьютерный форум 4 23.12.2021 15:49
Python nixage Python 1 28.05.2019 19:15
[Python] Нужно решить в среду вечером 5 -6 заданий для начинающих на языку Python. Пример заданий смогу выслать. Задания на английском языке. foxylen Фриланс 2 17.03.2019 12:30
Начальный уровень Python. Функции - Python YYYUUU Python 5 09.06.2017 12:09
PHP vs Python vs ... ? Izobara Общие вопросы по программированию, компьютерный форум 58 02.04.2013 22:23