@ru_python

Страница 4773 из 9768
Tishka17
15.02.2018
10:27:04
Вроде

Sergey
15.02.2018
10:27:05
Ну так и есть



Stas
15.02.2018
10:27:42
Хотя может надо yield from self._find_object?
блин, это фишка 3.3 питона

Google
Stas
15.02.2018
10:27:45
у меня легаси говно(

нашел статью на stackoverflow, тут вроде как куча примеров

спасибо

Tishka17
15.02.2018
10:29:04
блин, это фишка 3.3 питона
Тогда for x in self._find: yield x

Solar
15.02.2018
10:29:17
Tigran
15.02.2018
10:29:21
попробую ещё раз

Дайте запилю кулстори. Я решаю задачки на leetcode и регулярно возникает потребность в сбалансированных деревьях (например, вот тут: https://leetcode.com/problems/the-skyline-problem/description/ - нужно быстро добавлять, удалять и находить максимум). Плюсовики хитро используют multiset, в питоне же деревьев с балансировкой нет, а реализовывать их ох как не хочется. Но обычно заранее известен перечень элементов, которые в это дерево надо будет засунуть. Поэтому я придумал такой лайфхак: я сортирую весь массив потенциальных элементов дерева и строю по нему сразу сбалансированное дерево (это тривиально): def build_tree(array, l=None, r=None): l = l or 0 r = r or len(array) if r - l <= 0: return None if r - l == 1: return Node(array[l]) m = (l + r) // 2 left = build_tree(array, l, m) right = build_tree(array, m + 1, r) return Node(array[m], left=left, right=right) При этом я помечаю все элементы дерева как выключенные: class Node(object): def __init__(self, value, left=None, right=None): self.value = value self.enabled = False self.has_enabled_successors = False self.left = left self.right = right После этого остаётся вместо добавления элемента в дерево реализовать его включение (элементарная рекурсия), вместо удаления - выключение (тоже), и при других операциях (поиск элемента/поиск максимума/поиск минимума) учитывать включенность/выключенность. Вуаля, идеально сбалансированное дерево с log n операциями при миминуме умственного напряжения. Может, у вас есть более вменяемые способы решать задачи на деревья без реализации балансировки?

dmks
15.02.2018
10:29:43
НЕ ПРОКАТИТ

Я веб обезьяна, меня не взяли в Яндекс

мне нечего рассказывать

Stas
15.02.2018
10:30:13
Тогда for x in self._find: yield x
да, так сработало, спасибо!

Artem
15.02.2018
10:30:15
так туда таких вроде только и берут

Stas
15.02.2018
10:30:23
а не совсем понимаю почему в данном случае нужен цикл?

Google
Stas
15.02.2018
10:30:33
я же попадаю в условие, мне нужно просто рекурсивно вызвать метод

Tishka17
15.02.2018
10:31:36
Метод возвращает генератор. Когда делаешь рекурсию, ты его не используешь

Stas
15.02.2018
10:32:11
аааааааааа

бляха, понял

спасибо!

Aragaer
15.02.2018
10:55:59
https://dpaste.de/5XB3

крч, как это бороть?

задолбало - бот каждый день падает

Artem
15.02.2018
10:57:49
signal handler must be signal.SIG_IGN, signal.SIG_DFL, or a callable object а что там на самом деле подставляется?

Aragaer
15.02.2018
10:58:08
не, проблема не в этом. Тут это бага питона 3.5

в 3.6 тот же самый код работает нормально

ошибка выше - что именно мне надо ловить, чтобы если не удалось к серверу обратиться, то хрен с ним, все равно в цикле висит?

https://github.com/aragaer/pa-core/blob/master/tg.py#L24

вот код

Jentry
15.02.2018
10:59:39
крч, как это бороть?
Взять HTTPAdapter и сделать необходимое количество retry, прудусмотреть обработку requests.ReadTimeout, классика же ну

Aragaer
15.02.2018
10:59:51
я его не напрямую тыркаю

а через telepot

try: updates = self._bot.getUpdates(offset=self._offset, timeout=0) except TelepotException: _LOGGER.error("Telegram error", exc_info=True) except ProtocolError: _LOGGER.error("Urllib error", exc_info=True)

оно тут в try ломается

File "/home/aragaer/Projects/assistant/router/routing/__init__.py", line 150, in tick message = faucet.read() File "/home/aragaer/Projects/assistant/tg.py", line 28, in read updates = self._bot.getUpdates(offset=self._offset, timeout=0)

Google
b0g3r
15.02.2018
11:01:34
а эксепшн какой?

Aragaer
15.02.2018
11:01:56
выше ссылка на трейс. ReadTimeoutError тоже ловить видимо надо

b0g3r
15.02.2018
11:02:01
а, вижу

да, надо

Aragaer
15.02.2018
11:03:41
вот от такого и начинаются покемон-эксепшны. Сколько и каких эксепшнов оттуда будет вылетать я не знаю, а ловить их все надо, потому что они не должны ломать основное приложение

Ioann
15.02.2018
11:19:26
Лови всё подряд, логируй, потом разбирайся

Andrew
15.02.2018
11:22:32
Есть у кого про аккаунт на fl.ru ?

Artem
15.02.2018
11:51:11
Семен
15.02.2018
11:56:03
#работа Привет! Ищем разработчиков в Яндекс.Такси Подробности есть вот здесь https://yandex.ru/jobs/vacancies/dev/dev_python_taxi/ За подробностями пишите в личку, ищу ребят к себе в команду. Спасибо!

Семен
15.02.2018
11:57:18
то чувство, когда работаешь в саппорте ЯТакси
У нас сапорты, кстати, пишут на питоне очень много, го в личку)

Балансировать красное-черное дерево на доске заставите?
Не должны) Там более серьезные истории

dmks
15.02.2018
11:58:20
А у вас и в такси второй питон или такси на третий переехало?

Семен
15.02.2018
11:59:50
Оба есть

BlackAndOrange
15.02.2018
12:00:09
А большая часть кодовой базы на каком?

Artem
15.02.2018
12:00:10
Оба есть
серьезно?

dmks
15.02.2018
12:00:49
серьезно?
А ты не знал что ли? :D

Семен
15.02.2018
12:00:56
серьезно?
Ну есть разные задачи для ребят с разным уровнем. Я ищу к себе в команду человека. Я могу узнать подробности, если нужно, напиши в лс

Google
Artem
15.02.2018
12:01:02
А ты не знал что ли? :D
Я думал, только 2

dmks
15.02.2018
12:01:11
А, в этом плане :D

Andrew
15.02.2018
12:14:20
не, он денег стоит
А я уж разобрался

greykoshak
15.02.2018
12:47:02
Господа, помогите разобраться с выводом содержимого таблицы в sqlpostgres через механизм ORM и Pretty Table. Кто-нибудь может быть полезен в этом? Заранее спасибо!

Freeman
15.02.2018
12:47:06
Здравствуйте, требуется человек для написания кода, по работе с Авито. Инфа в личку.

Oleg
15.02.2018
12:52:55
Добрый день. #pandas #dataframe. Одна из колонок имеет буквенно числовые значения: TEST1, TEST2, TEST20, TEST21, TEST3. Каким способом можна отсортировать строки в "привычном" порядке?

BuHuIIIko
15.02.2018
12:56:48
list.sort(key=lambda x: x.name)

Oleg
15.02.2018
12:58:11
Спасибо. А применительно к датафрейму?

BuHuIIIko
15.02.2018
12:59:07
Если используется list

Я не использовал панду еще

Oleg
15.02.2018
12:59:57
У меня датафрейм. Я хочу его сортировать

BuHuIIIko
15.02.2018
13:00:26
Думаю уже встроенны такие методы

Nikolay
15.02.2018
13:13:59
Oleg
15.02.2018
13:18:46
Да. Но этот метод не имет аргумента key. Видимо нужен другой подход. Может с помощь apply и своей функции создавать новую колонку. Но мне кажется это избыточным....

Polly
15.02.2018
13:36:23
PyCharm в Windows 8.1 работает?

Или только в Linux?

Bohdan
15.02.2018
13:36:39
почему бы ему не работать?

Artem
15.02.2018
13:37:36
конечно работает

Google
Nikolay
15.02.2018
13:54:25
Oleg
15.02.2018
14:27:56
Гарна ідея. Дякую.

Nikolay
15.02.2018
14:46:51
Гарна ідея. Дякую.
добро пожаловать в pandas, где использование apply() - почти в 100% случаев ужасная идея

ибо это for loop

Oleg
15.02.2018
14:48:46
Только знакомлюсь с pandas. Интересно но нужно много практики.

К счастью в случае небольших датафреймов apply приемлим

dmks
15.02.2018
14:52:51
добро пожаловать в pandas, где использование apply() - почти в 100% случаев ужасная идея
я всегда думал что пандас догадался аплаить не по очереди :(

Nikolay
15.02.2018
14:53:41
я всегда думал что пандас догадался аплаить не по очереди :(
почти в 100% случаев нет. Есть вариант в отдельных кейсах попробовать numba.jit(), если надо ускорить функцию на чистом питоне, но помогает редко.

и да, numpy.vectorize() - это не то, если кто вдруг его вспомнил. Это тот же for loop.

Напоминаю интересующимся, что сегодня в Питере вечером в офисе Selectel проходит PyData - митап по анализу данных на Python. С регистрацией кто не успел - тот опоздал, но не забывайте вступать в группу на meetup.com, чтобы всегда быть в курсе! https://www.meetup.com/PyData-SPb/events/247116233/ .

И еще есть целый канал для обсуждения - https://t.me/pydata_spb

аналогичная группа для Москвы - https://www.meetup.com/PyData-Moscow/ , там тоже скоро будут новые события, не переключайтесь!

Страница 4773 из 9768