
Марк
16.06.2016
19:27:42
серча за глаза хватает

Aleshka
16.06.2016
19:27:53
ну вот серч мне скобку возвращает
с моей регуляркой
а findall нет

Google

Марк
16.06.2016
19:28:16
Потому что он идет дальше
А серч нет

Aleshka
16.06.2016
19:28:42
ну и что что дальше
он же скобку с именем находит
идет дальше - дальше нихера нет
вернул бы со скобкой
как серч

Zart
16.06.2016
19:29:15
re.match - проверяет что строка соответствует паттерну. т.е. проверка регулярки начинается с начала строки, примерно как если б там ^ стоял в начале
re.search - ищет подстроку, которая ложится на регулярку. т.е. начало регулярки может быть где угодно в строке
re.findall - то же что и сёрч, но не останавливается на первой находке, а ищет дальше до упора
у тебя первый мэтч если твою скобку сожрал оставшуюся проебет

Марк
16.06.2016
19:30:20
Карочи, Гвидо заебал. Надо было хуйнуть одну функцию по регуляркам - и порядок.

Zart
16.06.2016
19:30:34
ну и надо нонгриди еще юзать, иначе оно тебе будет во всю строку пытаться уложится
нетты
я только домой до ноута дорвался. огласите еще разок условия оригинальной задачи

Google

Aleshka
16.06.2016
19:33:22
есть жирная таблица с пассажирами корабля, колонки - имя, возраст и тд, одна из колонок - полное имя
в этой колонке куча строк по типу таких
Cumings, Mrs. John Bradley (Florence Briggs Th
Futrelle, Mrs. Jacques Heath (Lily May Peel)
Palsson, Master. Gosta Leonard
надо найти самое популярное женское имя
но это похер, я нашел, вопрос не в том, а почему серч выдает скобку а файндолл нет
почему он ее просирает

Zart
16.06.2016
19:34:05
ну. какими регулярками пытаешься?

Aleshka
16.06.2016
19:34:54
там типа иногда нет скобок, тогда имя мдет после точки
Miss. Mrs.

Zart
16.06.2016
19:35:35
э
"фамилия, звание имя (имя)" ?

Марк
16.06.2016
19:36:37
Бля, нахуя это

Janek
16.06.2016
19:37:01
Чтоб было

Aleshka
16.06.2016
19:37:08
это задача с курса по машинному обучению, тип самое первое по обработке данных

Марк
16.06.2016
19:37:29
Бля, группировку юзай

Zart
16.06.2016
19:49:30
>>> names
['Cumings, Mrs. John Bradley (Florence Briggs Th', 'Futrelle, Mrs. Jacques Heath (Lily May Peel)', 'Palsson, Master. Gosta Leonard']
>>> parser = re.compile('(?P<familyname>[^,]+), (?P<title>(?:Mr|Mrs|Miss|Master)\.)?\s*(?P<name>.*?)(?:\s*\((?P<altname>.*?)\)?)?$')
>>> for name in names:
... print(parser.match(name).groupdict())
...
{'familyname': 'Cumings', 'altname': 'Florence Briggs Th', 'title': 'Mrs.', 'name': 'John Bradley'}
{'familyname': 'Futrelle', 'altname': 'Lily May Peel', 'title': 'Mrs.', 'name': 'Jacques Heath'}
{'familyname': 'Palsson', 'altname': None, 'title': 'Master.', 'name': 'Gosta Leonard'}
теперь вы понимаете дети, за что нормальные люди ненавидят регулярки?
нечитабельное гуано

Janek
16.06.2016
20:18:03
Ну а аналоги?

ultranoise ?
17.06.2016
06:34:37
всем привет!
слушайте, а если у меня прям дофига функций где идет запрос в субд через алхимию, и выводят они результаты множественных sum(), avg() и прочих агрегационных функций -- есть ли способ попроще чем func.* на каждый чих ?
Честно говоря уже бесит что на голом SQL все лаконично, а в алхимии приходится городить.
Ну или я неверно работаю с ней


Dmitriy
17.06.2016
07:22:11
Боброе утро.
Помогите.
Прочитал файл test.yaml в переменную yamlParameters
содержимое файла:
packet1.include: "TRUE"
packet1.mask: Blah-blah.0.0.1738-63196_Feature
packet1.repo: path/to/repo
packet2.include: "TRUE"
packet2.mask: Blah-blah.11.0.13954-Feature*
packet2.repo: path/to/repo
packet3.include: "TRUE"
packet3.mask: Blah-blah.8.1.23284
packet3.repo: path/to/repo
{'packet1.include': 'TRUE',
'packet1.mask': 'Blah-blah.0.0.1738-63896_Feature',
'packet1.repo': 'path/to/repo1',
'packet2.include': 'TRUE',
'packet2.mask': 'Blah-blah.11.0.13354-Feature*',
'packet2.repo': 'path/to/repo2',
'packet3.include': 'TRUE',
'packet3.mask': 'Blah-blah.66.1.23284',
'packet3.repo': 'path/to/repo3',}
Сделал словарь вида
newDict = {'packet1.mask': 'Blah-blah.0.0.1738-63896_Feature',
'packet1.repo': 'path/to/repo1',
'packet2.mask': 'Blah-blah.11.0.13354-Feature*',
'packet2.repo': 'path/to/repo2',
'packet3.mask': 'Blah-blah.66.1.23284',
'packet3.repo': 'path/to/repo3',}
Теперь хочу передать значение ключей *.mask, *.repo каждого пакета, на вход другой функции.
Пробовал так:
dict(zip([value for (key,value) in newDict.items() if 'repo' in key],[value for (key,value) in newDict.items() if 'mask' in key]))
Out[342]:
{'path/to/repo1': 'Blah-blah.66.1.23284',
'path/to/repo2': 'Blah-blah.11.0.13354-Feature*',
'path/to/repo3': 'Blah-blah.0.0.1738-63896_Feature'}
Все ключи перемешались.
Подозреваю, что надо как то сортировать, но как ?


Zart
17.06.2016
07:25:49
а поменять формат никак?

Google

Nikita
17.06.2016
07:31:22
всем привет


Zart
17.06.2016
07:35:02
Боброе утро.
Помогите.
Прочитал файл test.yaml в переменную yamlParameters
содержимое файла:
packet1.include: "TRUE"
packet1.mask: Blah-blah.0.0.1738-63196_Feature
packet1.repo: path/to/repo
packet2.include: "TRUE"
packet2.mask: Blah-blah.11.0.13954-Feature*
packet2.repo: path/to/repo
packet3.include: "TRUE"
packet3.mask: Blah-blah.8.1.23284
packet3.repo: path/to/repo
{'packet1.include': 'TRUE',
'packet1.mask': 'Blah-blah.0.0.1738-63896_Feature',
'packet1.repo': 'path/to/repo1',
'packet2.include': 'TRUE',
'packet2.mask': 'Blah-blah.11.0.13354-Feature*',
'packet2.repo': 'path/to/repo2',
'packet3.include': 'TRUE',
'packet3.mask': 'Blah-blah.66.1.23284',
'packet3.repo': 'path/to/repo3',}
Сделал словарь вида
newDict = {'packet1.mask': 'Blah-blah.0.0.1738-63896_Feature',
'packet1.repo': 'path/to/repo1',
'packet2.mask': 'Blah-blah.11.0.13354-Feature*',
'packet2.repo': 'path/to/repo2',
'packet3.mask': 'Blah-blah.66.1.23284',
'packet3.repo': 'path/to/repo3',}
Теперь хочу передать значение ключей *.mask, *.repo каждого пакета, на вход другой функции.
Пробовал так:
dict(zip([value for (key,value) in newDict.items() if 'repo' in key],[value for (key,value) in newDict.items() if 'mask' in key]))
Out[342]:
{'path/to/repo1': 'Blah-blah.66.1.23284',
'path/to/repo2': 'Blah-blah.11.0.13354-Feature*',
'path/to/repo3': 'Blah-blah.0.0.1738-63896_Feature'}
Все ключи перемешались.
Подозреваю, что надо как то сортировать, но как ?
pkgDict = {}
for key, value in newDict.items():
pkg, subkey = key.split('.')
pkgDict.setdefault(pkg, {})[subkey] = value
даст
{'packet1':{'mask': '...', 'repo': '...'},
'packet2':{'mask': '...', 'repo': '...'}}
которое потом можно будет слать в функцию заметно проще
либо изначально юзать yaml вида:
packet1:
mask: ...
repo: ...
...
packet2:
mask: ...
repo: ...
...


Dmitriy
17.06.2016
07:42:06
Формат содержимого в данный момент не поменять

Марк
17.06.2016
11:57:02
Бедный Зарт

Zart
17.06.2016
11:57:17
?

Марк
17.06.2016
11:57:51
Большой чатик упомянули на гт/в паблосе Телеграма. Там уже 800+. Так что сюда тоже набегут)

Logerk49
17.06.2016
11:58:12
ждем веганосрачи

Zart
17.06.2016
11:58:16
и причём тут я?

Марк
17.06.2016
11:58:49

Kill me pls
17.06.2016
11:59:25
Как минимум если каждый по сообщению напишет, то 850 бесполезного флуда будет

Zart
17.06.2016
11:59:49
ну вы уже приступили, да?

Kill me pls
17.06.2016
12:00:05
=)

Petr
17.06.2016
14:15:40
Если мне надо работать с таблицей из тыщи строк, что лучше использовать?
Хайлоада нет
sqlite?

Admin
ERROR: S client not available

Petr
17.06.2016
14:16:57
Разворачивать постгресы и мускули лениво

Zart
17.06.2016
14:17:52
быстро и лениво - пикл или цсв

Google

Zart
17.06.2016
14:18:07
или вообще жсон

Petr
17.06.2016
14:19:40
А жсон не шибко хипстерство?
Т.е. насколько медленнее будет?

Zart
17.06.2016
14:21:16
э... предполагается что ты разок считал, операции провел в памяти, потом сохранил в финале. скорость в случае "тыщи строк" достаточно смешная

Petr
17.06.2016
14:21:22
Окей

Zart
17.06.2016
14:22:01
если планируется потом много данных, тогда скулайт ок

Janek
17.06.2016
14:23:52
Там же есть ограничения

Zart
17.06.2016
14:24:10
"там" это где?

Janek
17.06.2016
14:24:18
Скулайт
Планирую свой проект позднее на постгрес переводить

Zart
17.06.2016
14:25:13
тыща строк - это килобайт 100-200 максимум. картинки больше весят, йопт

Janek
17.06.2016
14:25:29
Ну лан

Zart
17.06.2016
14:25:50
у скулайта минусы в другом

Janek
17.06.2016
14:25:56
В чем?

Zart
17.06.2016
14:26:10
в основном в типах данных

Janek
17.06.2016
14:26:41
Помимо сейчас я его использую, ибо новую технологию для себя открываю, и все туториалы с скулайтом идут

Zart
17.06.2016
14:27:10
для основ сиквела хватает

Petr
17.06.2016
14:29:21
мде
я затупил
картинок тыща, позиций 5тыщ
жсон все еще норм?

Zart
17.06.2016
14:29:53
картинки как хранить будешь?

Google

Petr
17.06.2016
14:30:03
как файлы наверн
так проще

Zart
17.06.2016
14:30:29
а какие операции с данными надо?

Petr
17.06.2016
14:31:11
прост есть 2 прайса - опт и розница
и я не уверен что там и там одинаковые названия у позиций, мб чуть по другому быть названо
отсюда желание чего-то умеющего в норм поиск

Zart
17.06.2016
14:31:20
если поиск или агрегация - то лучше сразу в сиквел имхо
Эта группа больше не существует