@ru_python

Страница 2130 из 9768
Stanislav
01.02.2017
19:24:18
xrange
/ban

subject_89P13
01.02.2017
19:24:42
Python'ер
01.02.2017
19:24:51
xrange
У меня python 3)

Google
arisu
01.02.2017
19:24:52


subject_89P13
01.02.2017
19:25:35
Если ты хочешь выиграть в скорости, то даже на Сях уже разницы нет между вайлом и фором почти никакой.

Artem
01.02.2017
19:26:14
Главное не писать рекурсивно

Stanislav
01.02.2017
19:26:33
Главное не писать рекурсивно
Что значит рекурсивно?

Python'ер
01.02.2017
19:26:40
Artem
01.02.2017
19:27:15
Что значит рекурсивно?
Обход списка с yield в пост-ордере

subject_89P13
01.02.2017
19:28:22
лол

Nikolay
01.02.2017
19:28:25
первый случай еще и правильнее, потому что там нет сайдэффектов

точнее, есть, но не совсем)

Stanislav
01.02.2017
19:29:01
Обход списка с yield в пост-ордере
Там уже генератор, зачем список лепить

Nikolay
01.02.2017
19:29:31
Там уже генератор, зачем список лепить
так ему reverse нужен, как ты без списка это сделаешь?

Python'ер
01.02.2017
19:29:49
Обход списка с yield в пост-ордере
Что значит пост-ордер?

Google
Nikolay
01.02.2017
19:29:54
ну, можно deque вместо списка

Stanislav
01.02.2017
19:29:59
так ему reverse нужен, как ты без списка это сделаешь?
Ему не нужен реверс, ему нужен форс

Artem
01.02.2017
19:30:04
Это значит сходить, а потом вызвать действие

Nikolay
01.02.2017
19:30:28
Ему не нужен реверс, ему нужен форс
там наверху он писал, что задание - сделать аналог __reversed__

Stanislav
01.02.2017
19:30:59
Тогда я ебусь в глаза

Nikolay
01.02.2017
19:34:10
я бы сказал, что с deque будет быстрее всего

имхо

если использовать его, как стек

Denis
01.02.2017
19:34:25
В зад если вставлять?

Nikolay
01.02.2017
19:34:38
ну типа того

он же линкедлист, у него аппенд за O(1)

Denis
01.02.2017
19:35:18
У листа тоже О(1)

Artem
01.02.2017
19:35:43
Ага, амортизированно

Denis
01.02.2017
19:35:52
Как будто что-то плохое

Nikolay
01.02.2017
19:35:57
У листа тоже О(1)
у листа в худшем случае O(n)

Artem
01.02.2017
19:36:00
Ничего плохого

Nikolay
01.02.2017
19:36:05
а у deque гарантированно O(1)

Denis
01.02.2017
19:36:22
у листа в худшем случае O(n)
Мы же не один аппенд делаем

Artem
01.02.2017
19:36:24
Время на импорт зато нужно

Съел?

Google
Nikolay
01.02.2017
19:36:47
Denis
01.02.2017
19:36:51
N

Nikolay
01.02.2017
19:37:00
ну тем более

есть шанс нарваться несколько раз на realloc

оно тебе надо?

проще deque взять

Denis
01.02.2017
19:37:32
У дека каждый раз память выделяется

А у листа логарифм раз

Nikolay
01.02.2017
19:37:52
У дека каждый раз память выделяется
у переменной каждый раз память выделяется

а у листа выделяется большой кусок и линейно копируется

Artem
01.02.2017
19:39:32
Denis
01.02.2017
19:39:32


Nikolay
01.02.2017
19:39:43
Artem
01.02.2017
19:39:45
Не мемсет?

Мемцпу

Хотя

Тоже линейно

Nikolay
01.02.2017
19:40:01
Python'ер
01.02.2017
19:40:11
я бы сказал, что с deque будет быстрее всего
deque это последовательность? "extendleft(iterable) - добавляет в начало все элементы iterable (начиная с последнего элемента iterable)."

Nikolay
01.02.2017
19:40:13
и что ты этим частным случаем хотел показать?

Google
Denis
01.02.2017
19:40:27
Что аппенд в лист работает быстрее

Nikolay
01.02.2017
19:40:43
Что аппенд в лист работает быстрее
а теперь вместо чисел попробуй произвольные объекты

с возможностью добавлять и брать с обеих сторон

Denis
01.02.2017
19:41:24
Зачем нам с обеих?

Artem
01.02.2017
19:41:31
То есть дабл линкед лист

Nikolay
01.02.2017
19:41:54
но вообще это как раз зависит от реализации reversed поверх него

Admin
ERROR: S client not available

Artem
01.02.2017
19:42:30
С сингл ты за o(n) будешь обратный конец менеджить

Nikolay
01.02.2017
19:42:38
Зачем нам с обеих?
нам похер, нам просто линкедлист надо

Denis
01.02.2017
19:43:21
В этой задаче нам не нужен линкедлист

Nikolay
01.02.2017
19:43:45
В этой задаче нам не нужен линкедлист
в этой задаче при заранее неизвестном размере итератора на входе нам нужен линкедлист

я выше объяснил, почему

Python'ер
01.02.2017
19:44:00
deque - это тупо linked list
Т.е. linked list - это последовательность объектов с атрибутами: значение, ссылка на следующий объект, ссылка на предыдущий объект?

Nikolay
01.02.2017
19:44:04
если размер известен и он не очень большой - можно и лист

у него есть методы вставки и доставания

Python'ер
01.02.2017
19:45:18
в общем случае да, но тут это просто контейнер, тебе не надо об этом думать
Я видел написание класса такой структуры с подробными объяснениями)

Google
Nikolay
01.02.2017
19:46:46
Я видел написание класса такой структуры с подробными объяснениями)
слушай, ну это базовая структура данных вообще

Python'ер
01.02.2017
19:59:13
слушай, ну это базовая структура данных вообще
А я изучающий python из интереса по курсам) Но виноват здесь я: "Ознакомьтесь при помощи документации с классами namedtuple и deque модуля collections. "

Почему collections.deque().extendleft([1, 2, 3]) дает NoneType ?

Nikolay
01.02.2017
20:26:22
Почему collections.deque().extendleft([1, 2, 3]) дает NoneType ?
потому что это inplace операция, видимо

Python'ер
01.02.2017
20:30:48
Artem
01.02.2017
20:44:35
инплейс операции никто не запрещает возвращать this

inplace операция - это которая изменяет сам контейнер, а не создает новый

например, сортировка in-place - это сортировка, не требующая дополнительной памяти

вопрос на понимание, уже когда-то звучавший в этом чате: как в питоне сделать in-place реверс строки?

arisu
01.02.2017
20:48:12
никак.

строки иммутабельны

Artem
01.02.2017
20:48:35
это правильный ответ

arisu
01.02.2017
20:49:00


Nikolay
01.02.2017
20:56:14
это правильный ответ
Ну вообще, строго говоря, это неправильный ответ

Artem
01.02.2017
20:56:21
ммм

Nikolay
01.02.2017
20:56:46
И был пример, когда чувак тупо через ctypes.... дальше продолжать?))

Artem
01.02.2017
20:57:38
ну нет, это фигня

это как доебаться до 8 бит в байте

формально да, но на практике нет

Nikolay
01.02.2017
20:59:12
ну нет, это фигня
Самое забавное - на чистом питоне это тоже возможно :) но сложно

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