Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Архиватор Python


Автор: Aleks99 7.6.2013, 16:37
Я новичок в Python, задали задачу, не могу додумать как ее решить.
Есть текстовый файл, нужно по нему пробежаться, найти повторяющиеся слова, создать словарь вида "слово:цифра" и заменить слова цифрами, при этом поместить его в начало файла и после этого считать и заменить все обратно до исходного текста.
Есть код, он делает что то подобное с символами, не понимаю как заставить его слова понимать
Код

# -*- coding: cp1251 -*-
import re

s,match,b = 'abbcccddddfjja','',''
t = []

for i in s:
    if i == b: continue
    b = i
    pattern = '%s{1,}' % i
    match = re.search(pattern, s)
    s_ = str(len(match.group())) + match.group()
    t.append(s_[:2])
    #match = re.sub(pattern, s_[:2], s)    
print 'строка: ' + s + '\n' + 'заархивирована: ' + str(t)

s = ''
for i in t:
    s += int(i[0])*i[1]
print "разархивирована: " + s

Автор: cav 15.6.2013, 06:12
пробегаешь по тексту
строишь словарь (dict) из пар "слово:цифра" 

word=dict()
for l in text:
   if word.has_key(l):  # где l у нас слово
     # нашли слово в словаре
    word[l]+=1  
   else :
    # не нашли слово в словаре
    word[l]=1
  
во примерно как то так можно строить словарь вхождения слов

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51b1e27b6ccc19091e000002#findElement_E7045_51bbdb996ccc19bf6100145c_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)