| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > Как упростить код? |
| Автор: proDiva 10.10.2006, 10:52 | ||
Парни, вот еще один код в тему:
В общем, содержимое файла состоит из блоков (начало блока "К...."), каждый блок - из некоторого количества строк. Нужно первый блок оставить в файле, остальное переписать в другой файл. Как переписать код покрасивее и поумнее?)))) |
| Автор: pythonwin 10.10.2006, 11:30 |
| proDiva, ты конечно молодец, но твой код много памяти кушает + кажется не отвечает заданию (дай пожалуйста содержимое файла) |
| Автор: proDiva 10.10.2006, 11:49 | ||||
Пжалуйста, но все работает как надо)) |
| Автор: proDiva 10.10.2006, 13:13 | ||
Вот мои пояснения к тому, что я пыталась сделать:
|
| Автор: setq 10.10.2006, 14:58 | ||
Создавать класс необязательно.
Файлы можно явно не закрывать (если конечно это не JPython). Что делает твой код, я не понимаю. Кроме того, что исходный файл весь прочитывается в память, а она, как сказал классик, не резиновая. Успехов. |
| Автор: proDiva 10.10.2006, 16:01 |
а как по-другому запомнить его содержимое? |
| Автор: setq 10.10.2006, 16:21 |
| Ну никак в общем. Либо в память, либо в другой файл. Возможно, что задачу, о которой идёт речь в первом посте, проще решить с помощью модуля mmap, но автор уже наверно нашёл решение (судя по галке). |
| Автор: proDiva 10.10.2006, 16:49 |
| а можно как-нибудь упростить этот вложенный цикл? он нужен только для определения первого символа строки.... может лучше представить строку списком и вытащить первый символ? хотя в количестве строк кажется оба способа равноценны |
| Автор: proDiva 10.10.2006, 19:24 |
| Модераторам: Спасибо за выделение темы. Еще вопрос: нельзя вернуть мой статус новичка?)) Чё-то я себя еще не ощущаю "шустрым" В очередной раз извиняюсь за оффтоп...... ну не могут девушки не отвлекаться от основной темы разговора))) |
| Автор: setq 11.10.2006, 00:01 |
Убрать его) Вам для проверки нужен только первый символ сторки? Воспользуйтесь line[0]. |
| Автор: FunnyFalcon 11.10.2006, 09:15 | ||||
f.close() не убирай! Мало ли на каком питоне будешь програмировать, а JPython, IronPython не считают ссылки, и фаил еще долго открытым валяться будет. Еще вариант:
|
| Автор: proDiva 11.10.2006, 12:05 | ||
Я нашла другой вариант:
Парни, ну теперь Вы можете сказать, что стиль функционального программирования выдержан?)) |
| Автор: pythonwin 11.10.2006, 12:26 | ||||
и сколько раз в год можно менять статус, если есть 2000 постов? Добавлено @ 12:28
можно и компромис - первый блок в переменную, а все остальное в во второй файл, а потом очистить первый файл и записать в него переменную. |
| Автор: proDiva 11.10.2006, 13:17 | ||
Ну а на фига в данном случае такие усилия? Входящий файл не такой большой. С памятью ничего страшного не случится из-за каких-то 60-ти строчек, и побольше сохраняли))) |
| Автор: proDiva 11.10.2006, 15:47 |
| Ну вот, сама нашла компактный вариант кода, и никто не похвалил |
| Автор: pythonwin 11.10.2006, 15:51 | ||
репу смотри |
| Автор: proDiva 11.10.2006, 15:59 |
какую-такую репу?)) |
| Автор: dvska 11.10.2006, 17:17 | ||||
Брааааавооооо, proDiva!!!!! А так?
|
| Автор: Cr@$h 11.10.2006, 20:14 | ||
Сколько угодно. Да, жалко, что все слова-статусы в мужском роде написаны. Это уже избитая тема. Добавлено @ 20:18 У тебя: Репутация: 6. |
| Автор: dvska 11.10.2006, 20:53 |
| proDiva, http://web-brains.com/archives/11 |
| Автор: proDiva 12.10.2006, 08:13 | ||
Добавлено @ 08:15
А для кого тут нужен статус в женском роде? меня в мужском роде абсолютно устраивает |
| Автор: FunnyFalcon 12.10.2006, 09:44 | ||||
| proDiva молодец, конечно. НО НЕ СТОИТ ПЕРЕОПРИСВАИВАТЬ ИМЕНА ВСТРОЕННЫХ ФУНКЦИЙ/ТИПОВ (я имею в виду list). Кроме того проще (и эфектвнее) сделать без map:
А совсем правильно:
Но все-равно, спасибо за урок. |