Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 30, 2008 14:36:59

FDMa
От:
Зарегистрирован: 2008-10-30
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Принимайте новичка.

Приветствую друзья!
Я решил освоить python. Сразу оговорюсь, это будет мой первый язык программирования. :)
Буду благодарен за любую помощь и подсказки от уважаемого сообщества.
Какую литературу выбрать, в какой среде проще начать?
По совету взял конкретную задачу, чтобы осваивать язык. Вроде как мотивация.
Так вот поставил себе задачу. Прошу не сильно не возмущаться, это первый опыт.
1 Открыть массив
2 Взять первое слово первой строки (былобы хорошо, чтобы была изменяемая функция)
3 проверить наличие строк с этим словом
4 вынести строки с этим словом в буфер если строк не меньше 100 (былобы хорошо, чтобы была изменяемая функция)
5(2)все слова до конца файла
6(3)
7(4)
8 записать в файл unsrt.result строки которые не попали во все остальные файлы.

Вот что получилось…

input = file("input.txt", "r")
f = input.readlines()
for l in f:
pat = l.split()[0]
ans = []
for q in f:
if pat in q.split(' '):
ans.append(q)
if(len(ans) > 100):
out = file("%s.result" % pat, "w")
out.write("".join(ans))
out.close()
Естественно это очень медленно… Ооочень. Как по вашему можно оптимизировать этот код, или вообще алгоритм.
Спасибо!



Офлайн

#2 Окт. 30, 2008 16:16:49

FDMa
От:
Зарегистрирован: 2008-10-30
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Принимайте новичка.

lorien
1) считать все строки
2) разбить строки на множество слов
3) составить словарь. Ключами будут слова, значениями будут списки с номерами строк, где это слово встречается
4) далее не особо понял что надо, ну в общем на основе созданного словаря сделать то, что надо )
А если можно с примерами?
Вообще если кратко то задача стоит разбить большой файл на фалы по ключевым словам.



Офлайн

#3 Окт. 31, 2008 03:27:29

FDMa
От:
Зарегистрирован: 2008-10-30
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Принимайте новичка.

lorien
А если можно с примерами?
Мне тоже лень думать )
Вот как мне кажется, это должно создать словарь.
import string                      
input = file("input.txt", "r")
words = {}
for line in u.readlines():
line = string.strip(line, " \n")
for word in line.split(" "):
А дальше как, ума не приложу. Помогите пожалуйста.
Это мои первые в жизни строки.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version