Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 1, 2013 09:10:59

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

reverse() что-то делаю не так.

Загружаю страницу содержащую email, записываю текст, разбиваю по пробелам:

g.go("http://yandex.ru")
m=g.xpath_text("//*").split()
m.reverse()
потом ищу сам email по “@”:
while m[x]!=m[-1]:
    r=0
    l=[p for p in m[x]]
    while l[r]!=l[-1]:
        if l[r]=="@":
            print m[x]
Так как обычно email указывают в конце то решил добавить реверс для увеличения скорости, но странное дело при работе с сайтом содержащим большое количество текста и наличием реверса в программе, мыло не находит, убираю реверс все окей.
Что я делаю не так?

Офлайн

#2 Дек. 1, 2013 09:48:14

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

reverse() что-то делаю не так.

noob_saibot
реверс для увеличения скорости
ну так возможно там нет прироста скорости. ты замерял это дело ?

Офлайн

#3 Дек. 1, 2013 09:56:46

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

reverse() что-то делаю не так.

Singularity
ну так возможно там нет прироста скорости. ты замерял это дело ?
Нет скорость не замерял, я это чисто логически добавил(чтобы быстрее найти нужный символ лучше начать с ближайшей точки). Да и как я замерю если задача не выполняется с добавлением реверса

Офлайн

#4 Дек. 1, 2013 11:15:25

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

reverse() что-то делаю не так.

noob_saibot
может быть проще регулярки использовать?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Дек. 1, 2013 12:18:51

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

reverse() что-то делаю не так.

JOHN_16
может быть проще регулярки использовать?
С выводом мыла проблем нет никаких Я заморочился над тем почему при добавлении реверса программа не работает. Но спасибо за советы

Отредактировано noob_saibot (Дек. 1, 2013 12:19:18)

Офлайн

#6 Дек. 1, 2013 18:53:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9732
Репутация: +  843  -
Профиль   Отправить e-mail  

reverse() что-то делаю не так.

noob_saibot
мыло не находит, убираю реверс все окей.
Что я делаю не так?
код неполный

noob_saibot
while m[x]!=m[-1]:
что это вообще такое ? может, тебе книжку почитать какую-нибудь ? выдумать свои способы использования питона, пока не найдётся самый эффективный, - не очень-то продвинуто

noob_saibot
l=[p for p in m[x]]
во-первых,
l = list(m[x])
и l не используется для имён (можно использовать lst)
во-вторых, зачем это делать, в строке и так можно искать
в-третьих,
noob_saibot
    while l[r]!=l[-1]:
        if l[r]=="@":
            print m[x]
if '@' in word:
    print word



Отредактировано py.user.next (Дек. 1, 2013 18:58:39)

Офлайн

#7 Дек. 4, 2013 13:51:50

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

reverse() что-то делаю не так.

py.user.next
Спасибо за критику (мой ник как бы говорит за себя). Но стартовый вопрос не осветили

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version