Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 31, 2009 15:04:14

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

Нет не падает. Наверное, что-то не скопировал не то) Вот результаты твоего:

expee@localhost:~/dev/python$ time python hehe.py

real 0m4.655s
user 0m0.540s
sys 0m0.176s
expee@localhost:~/dev/python$ time python hehe.py

real 0m2.713s
user 0m0.544s
sys 0m0.156s
expee@localhost:~/dev/python$ time python hehe.py

real 0m1.437s
user 0m0.548s
sys 0m0.192s
Вот моего:
expee@localhost:~/dev/python$ time python hehe.py

real 0m1.531s
user 0m0.528s
sys 0m0.276s
expee@localhost:~/dev/python$ time python hehe.py

real 0m1.969s
user 0m0.512s
sys 0m0.180s
expee@localhost:~/dev/python$ time python hehe.py

real 0m0.709s
user 0m0.488s
sys 0m0.200s
Оба на идентичных файлах размером 26мб.

Я исходил именно из задач, которые написаны в названии темы.



Отредактировано (Дек. 31, 2009 15:05:35)

Офлайн

#2 Дек. 31, 2009 15:07:30

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

Кстати, вот тут есть сравнения скорости функций, с помощью которых можно оставить только уникальные элементы: http://www.peterbe.com/plog/uniqifiers-benchmark



Офлайн

#3 Дек. 31, 2009 15:09:53

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

Интересная разница во времени выполнения твоего. С моим более-менее все понятно. Машинка у меня покруче, вот он и побыстрее бегает.
Но вот почему твой у меня так долго выполняется непонятно. И не только у меня, кстати. superduck тоже говорил, что долго.
Какой у тебя Питон? 2.6? 3? Может там так сильно соптимизировали replace?



Офлайн

#4 Дек. 31, 2009 15:14:16

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

Питон 2.6.4. Почему у нас такая разница даже не знаю :) Ну ладно, ТС доволен и все хорошо.



Отредактировано (Дек. 31, 2009 15:15:42)

Офлайн

#5 Дек. 31, 2009 15:28:09

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

А помоему разобраться в чем тут дело гораздо важнее, чем само решение.
Я, например, считал, что replace на таких длинных сроках будет работать намного медленее, чем операции со списками.
Поэтому для меня то, что твой скрипт у меня 10 минут работал было вполне понятным.

Попробую поставить 2.6. К сожалению в Debian он только в experimental.



Офлайн

#6 Дек. 31, 2009 15:30:11

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

Все-таки тестовые файлы у нас разные. Если хочешь, то можешь кинуть свои на 4expeegmail.com Тогда будут точные. Как я уже говорил у меня не все строки в файле уникальны.



Отредактировано (Дек. 31, 2009 15:31:50)

Офлайн

#7 Дек. 31, 2009 16:40:56

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

Питон тут не виноват. Я получил похожие результаты с 2.6.4.
Файл послал.

PS: У меня по-моему тоже строки не совсем уникальны. Я его получил копируя один и тот же файл несколько раз.



Отредактировано (Дек. 31, 2009 16:45:30)

Офлайн

#8 Дек. 31, 2009 16:58:24

superduck
От:
Зарегистрирован: 2009-11-14
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

питон 2.6.2
медленннно

expee
а на счёт не все уникальные, это примерное сотношение уникальности на весь файл?



Офлайн

#9 Дек. 31, 2009 18:07:48

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

Ну тогда все понятно :) Просто у меня было всего ~30 уникальных строкю.

ps. с почти наступившем всех)



Офлайн

#10 Дек. 31, 2009 18:12:07

superduck
От:
Зарегистрирован: 2009-11-14
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

текст А и В, если строчка из текста В есть в А - удалить ее

аа.. ну тогда всё ясно) ибо у меня все 450к уникальных строк)

.зы так же всех с наступающим)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version