
Igor
17.12.2016
22:04:22
>>> pattern = re.compile(r'(\d)\1{2,}')
>>> test = re.findall(pattern, line)
>>> print(test)
['2']
найди одно отличие!
подсказка:
>>> print('(\d)\1{2,}')
(\d){2,}
>>> print(r'(\d)\1{2,}')
(\d)\1{2,}
(ну ладно, это не подсказка, это ответ)

Google

Alex
17.12.2016
22:05:07
r ? а разве оно надо когда compile`ом собираешь ?

b0g3r
17.12.2016
22:05:32
[match.group() for match in pattern.finditer(line)]

Igor
17.12.2016
22:05:35
какая разница, чем собираешь
у тебя экранирование строки сожрало \1

Alex
17.12.2016
22:06:25

Yan?
18.12.2016
05:14:52
Вот не самой лучшей идей было weak private method/variables лексически через _ выделять, а сильныее через __
Читается немного искусственно что ли
Учитывая, что в zen-e написано Readability counts.

Amaro
18.12.2016
07:47:20
Подчеркивание в приватных методах характерно для многих языков и является общепринятой практикой, Питон ничего не придумал, просто взял готовое.
Поэтому как раз это соответствует идее readability - легко понимается теми, кто не знаком с Питон, но знает, например, плюсы.

Zart
18.12.2016
09:04:52
питон вместо protected/private использует соглашение _ и __ в начале метода/поля

Greg
18.12.2016
09:42:13
ГАйс, привет!

Юра
18.12.2016
09:50:05
Привет всем

Google

Zart
18.12.2016
09:50:48
в стдлибе есть дом, сакс и етри. лхмл использует libxslt/libxml2 на плюсах для тех же интерфейсов
хочешь сказать тебе ни один из вариантов не подошел?
мелкософтовский вариант дом правда был удобнее по мне
я уже упомянул три варианта
первые два пришли из жабы - DOM, где весь xml парсится в древовидную структуру и полностью содержится в памяти
это позволяет бегать по всему файлу туда-сюда и манипулировать кусками как угодно

тнн Itjunky
18.12.2016
09:53:54
Минутка нубских вопросв от ITJunky

Zart
18.12.2016
09:54:45
второй - SAX - тоже из жабы, потоковый разбор
в этом апи хмл разбивается на токены - теги и текст между ними
для каждого токена вызывается метод-обработчик
это позволяет обрабатывать гигантские объемы данных не тратя память, и довольно быстро. но понятно что некоторые вещи делать сложнее

тнн Itjunky
18.12.2016
09:55:03
Как правильно впихуячить один список в другой?

Zart
18.12.2016
09:55:35
третий - etree - это питоновая обёртка вокруг DOM, делает то же что и дом, но при этом обращение к тэгам более питоновое - слайсами и итерацией

Denis
18.12.2016
09:56:04

тнн Itjunky
18.12.2016
09:56:29
Ну вот я пытаюсь сразу в нулевой элемент сувать, по коду видно должно быть

Denis
18.12.2016
09:56:42
В нулевом элементе ничего нет

тнн Itjunky
18.12.2016
09:56:46
да

Denis
18.12.2016
09:56:48
Потому что список пустой

Zart
18.12.2016
09:56:53
он пытается какуюто непонятную фигню сотворить..

тнн Itjunky
18.12.2016
09:56:55
и вот тут мой мозг сломался

Denis
18.12.2016
09:56:56
Может, тебе append надо?

Zart
18.12.2016
09:57:19
зачем вообще level

тнн Itjunky
18.12.2016
09:57:31
Хотя, видимо я туплю, надо подумать в сторорну индекса

Zart
18.12.2016
09:57:34
пихай в стек напрямую, без [level]

Denis
18.12.2016
09:57:40
Я вообще не очень понял, что в стеке хранится и зачем там буквы

Google

тнн Itjunky
18.12.2016
09:57:41
Ща задачу дам

Zart
18.12.2016
09:57:46
level будет равным размеру стека len(stack)

тнн Itjunky
18.12.2016
09:57:52
1. Написать код (с помощью регулярных выражений и без них) для удаления из строки незакрытых скобок вместе с их содержимым, если после них нет закрытых блоков: 'esdfd((esdf)(esdf' -> 'esdfd((esdf)'. Написать тесты для этого кода.
И у меня мозг скрепит над ней

Zart
18.12.2016
09:58:18
ну общая идея в целом верна

Denis
18.12.2016
09:58:35
Зачем в стек букву пихать?

тнн Itjunky
18.12.2016
09:58:42
Ещё условие странное, из которого выходит что напечатаются только первые символы
Ещё ломается мозг на том, что надо собирать скобки с самого нижнего уровня
а вконце понять, что самая первая скобка не закрыта -=))))
Это же длинна
А не вложенность

Zart
18.12.2016
10:05:42
вложенность скобок равна глубине твоего стека
подумай еще раз

тнн Itjunky
18.12.2016
10:05:50
Ога
а не количеству элементов стэка

Denis
18.12.2016
10:06:38
Что хранится в стеке?

тнн Itjunky
18.12.2016
10:06:54
списки с содержимым скобок

Zart
18.12.2016
10:06:59
если у тебя стек будет из набегающих строк или листов с символами, то таки колву элементов стека

тнн Itjunky
18.12.2016
10:07:00
по задумке, пока не так

Google

Denis
18.12.2016
10:07:19
Я думал, там хранятся символы, а не списки

тнн Itjunky
18.12.2016
10:07:36
Список в списке, а там уже символы
Или 3 уровня вложенности, это не важно

Denis
18.12.2016
10:08:06
Пока этого не видно

Zart
18.12.2016
10:08:16
в условии сказано про кривые открытые скобки
лишних закрывающих не будет?

Admin
ERROR: S client not available

тнн Itjunky
18.12.2016
10:08:25
Ну да
закрывающие пофигу, видимо

Zart
18.12.2016
10:08:39
эээ

тнн Itjunky
18.12.2016
10:08:42
Но, по хорошему надо всё учесть

Zart
18.12.2016
10:09:48
хм... а вообще стек не нужен

тнн Itjunky
18.12.2016
10:10:08
Я решил попробовать первое, что пришло в голову
Но пока затык именно на добавлении списка внутрь списка и понимании уровня вложенности
Для контроля последующего добавляения в финальную строку

Zart
18.12.2016
10:11:12
а не, стек нужен для откатов на неверные скобки, хм
но в него достаточно заносить индексы

тнн Itjunky
18.12.2016
10:12:22
Ну да, это несколько сократит заморочки
list.index(x, [start [, end]]) Возвращает положение первого элемента со значением x (при этом поиск ведется от start до end)
Блин, получается по raw_string.index('('), я всегда буду получать одно и то же значение
Хотя, можно положить прошлое в старт
Это какраз и будет level

Google

pride
18.12.2016
10:20:17
Мне кажется что Zart это ИИ который ловко соскочил с теста Тьюринга и теперь скрывается в этом чатике. >_>

arisu
18.12.2016
10:22:01
Тьюринговый наркоман

pride
18.12.2016
10:23:36
Есть такая штука, некий sub парсит две странчики в инете (с цитатами) и выдёргивает случайную через random.randint (известно точное количество цитат на каждой, соответственно идёт
рандомим стр 1 или 2
если стр 1 то рандомим с 1 по 20 и выдаем
если стр 2 то рандомим с 1 по 13 и выдаем
когда я этот сабс пускаю отдельно, цитаты редко однинаковые выдает подряд
как только в продакшне - через раз повторы
я подозреваю что рандом куплен госдепом, но как проверить хз)

Zart
18.12.2016
10:24:32

pride
18.12.2016
10:25:06
Зарт, я в хорошем смысле же)
я тебя по утрам вместо газеты читаю

Zart
18.12.2016
10:25:35

pride
18.12.2016
10:25:51
телеграмобот

Zart
18.12.2016
10:26:00
просто если чемнить что крутит пачку процессов - то в каждом по одинаковому рандомсиду 8)

тнн Itjunky
18.12.2016
10:26:09
Его ещё и в трай пришлось обернуть

pride
18.12.2016
10:26:49
видно понравились ему пара цитат вот и продвигает, ладно, засуну в лог и посмотрю стату не за два дня а за неделю

Zart
18.12.2016
10:27:47
короче алгоритм у тебя такой - когда находишь открывающую скобку - начинаешь новый уровень аккумулятора
закрывающую - берешь весь аккумулятор и плюсуешь его к уровню ниже
если закрывающая добралась до нулевого уровня - выводишь накопленное

тнн Itjunky
18.12.2016
10:29:10
Да, но как начать этот уровень? =)
Эта группа больше не существует