@ru_python

Страница 2092 из 9768
Nikolay
24.01.2017
18:26:12
это то же самое, что я написал

только не нужен defaultdict, когда есть Counter

и нету iteritems() в питоне уже вроде

Nikolay
24.01.2017
18:27:14
в моем мире есть)

Google
Nikolay
24.01.2017
18:27:21
меняй мир)

Roman
24.01.2017
18:27:23
100 loops, best of 3: 7.16 ms per loop

первое - это вариант с парой set()

Denis
24.01.2017
18:28:03
Там же результаты разные будут

Roman
24.01.2017
18:28:03
второе - это [k for k, v in collections.Counter(l).items() if v > 1]

Nikolay
24.01.2017
18:28:33
второе - это [k for k, v in collections.Counter(l).items() if v > 1]
я подозреваю, это потому что итерация по словарю - дело неблагодарное

Roman
24.01.2017
18:28:58
я подозреваю, это потому что итерация по словарю - дело неблагодарное
да. но на pypy разница минимальна, хоть вариант с set по-прежнему быстрее

Так входных данных-то нет. Может приемлемо.
ничто не мешает их сгенерировать.

Maxim robox
24.01.2017
18:32:16
ничто не мешает их сгенерировать.
Я к тому, что если там их немного, то и не надо париться между O(1) и O(n).

Maxim robox
24.01.2017
18:34:20
Ой. Или как тогда? O(n) и O(n²)?

Nikolay
24.01.2017
18:35:17
а как насчет такого: list(Counter(elements) - Counter(set(elements)))

Google
Maxim robox
24.01.2017
18:38:24
а как насчет такого: list(Counter(elements) - Counter(set(elements)))
Тогда все элементы останутся только по одному разу же?

Nikolay
24.01.2017
18:38:40
ну так с сетами они тоже по одному разу останутся

Maxim robox
24.01.2017
18:39:27
да
Не соответствует условиям, мне кажется.

Roman
24.01.2017
18:39:33
На самом деле надо сразу после апдейта каунтера проверять его значение

Nikolay
24.01.2017
18:39:50
100 loops, best of 3: 7.16 ms per loop
на каком размере ввода пробовал?

Nikolay
24.01.2017
18:42:03
32768
In [20]: a = [random.randint(0, 100) for _ in range(32768)] In [21]: %timeit list(Counter(a) - Counter(set(a))) 100 loops, best of 3: 2.19 ms per loop

я пабидил

Nikolay
24.01.2017
18:43:08
Maxim robox
24.01.2017
18:43:32
просто ipython
Объясните вкратце, в чём его суть по сравнению с обычным REPL?

Nikolay
24.01.2017
18:43:36
ipython notebook - это web gui, который сейчас переименовали в jupyter

Объясните вкратце, в чём его суть по сравнению с обычным REPL?
в том, что обычный репл не нужен вообще :)

нормальная история, нормальное многострочное редактирование

подсветка синтаксиса, куча хелперов

I
24.01.2017
18:44:54
кстати о Jupyter - тут таск один есть. Есть возможности встроить jupyter на сайт помимо iframe?

Google
Maxim robox
24.01.2017
18:45:32
нормальная история, нормальное многострочное редактирование
Просто вроде бы всё это и так есть. Может я что-то упускаю?

Maxim robox
24.01.2017
18:46:21
нету ничего этого
Ну в паре с IDE.

Nikolay
24.01.2017
18:46:29
плюс, вокруг ipython своя инфраструктура давно построена

jupyter, ipyparallel, pylab

I
24.01.2017
18:46:43
я просто ни хрена не понимаю логики, мне нужно в джанге по определенным поддоменам отображать jupyter notebook.

Nikolay
24.01.2017
18:46:58
или надо его как часть страницы показывать?

I
24.01.2017
18:47:12
его нужно в странице отобразить

да-да

Nikolay
24.01.2017
18:47:19
а почему не iframe?

I
24.01.2017
18:47:20
притом iframe не нравится

таск висит "исследовать возможности встроить не через iframe"

Nikolay
24.01.2017
18:47:42
Ну в паре с IDE.
в ide чаще всего как раз ipython

таск висит "исследовать возможности встроить не через iframe"
нужен интерактивный ноутбук или просто показать?

I
24.01.2017
18:48:06
интерактивный, увы

так бы я через selenium какой-нибудь погонял бы )

Nikolay
24.01.2017
18:48:34
ну тогда посмотри темы для jupyter

Google
Nikolay
24.01.2017
18:48:37
и напиши свою

I
24.01.2017
18:48:51
на основе виджетов местных?

Nikolay
24.01.2017
18:48:59
интерактивный, увы
https://github.com/dunovank/jupyter-themes

I
24.01.2017
18:49:26
круто, попробую, спасибо =)

Roman
24.01.2017
18:49:30
In [20]: a = [random.randint(0, 100) for _ in range(32768)] In [21]: %timeit list(Counter(a) - Counter(set(a))) 100 loops, best of 3: 2.19 ms per loop
Сделай что-то вроде: res = set() c = collections.Counter() for i in l: c[i] += 1 if c[i] > 1: res.add(i)

Интересно было бы превратить это в компрехеншн

Nikolay
24.01.2017
18:51:24
In [23]: def f(): ...: res = set() ...: c = collections.Counter() ...: for i in a: ...: c[i] += 1 ...: if c[i] > 1: ...: res.add(i) ...: In [24]: %timeit f() 100 loops, best of 3: 19 ms per loop

так?

Admin
ERROR: S client not available

Nikolay
24.01.2017
18:52:24
это же inplace операция

Nikolay
24.01.2017
18:53:12
Что-то дохрена
за что купил - за то продаю

Nikolay
24.01.2017
18:56:45
In [27]: def f(): ...: res = set() ...: c = collections.defaultdict(int) ...: for i in a: ...: c[i] += 1 ...: if c[i] > 1: ...: res.add(i) ...: In [28]: %timeit f() 100 loops, best of 3: 6.73 ms per loop

Roman
24.01.2017
18:57:01
И res заменить на list()

arisu
24.01.2017
18:58:04
что вы голову то ебете

x = [item for item in x if x.count(item) > 1]

Google
Denis
24.01.2017
18:58:34
Roman
24.01.2017
18:59:05
x = [item for item in x if x.count(item) > 1]
А сколько для него timeit скажет?

Denis
24.01.2017
18:59:17
Дохрена

arisu
24.01.2017
18:59:23
если остро стоит вопрос времени, лучше не ходите в питон

и посмотрите имплементацию Counter

Nikolay
24.01.2017
18:59:35
Не ходите в питон

arisu
24.01.2017
18:59:35
узнаете много нового

Nikolay
24.01.2017
18:59:45
kek

Denis
24.01.2017
19:00:17
С++ быстрее pypy

arisu
24.01.2017
19:00:35
можно через reduce по-моему еще

Roman
24.01.2017
19:00:36
С++ быстрее pypy
Зависит от задачи

dmks
24.01.2017
19:00:54
asmbb

arisu
24.01.2017
19:01:10
а не

нельзя.

Maxim robox
24.01.2017
19:01:22
filter(lambda x: x[1] > 1, Counter(elements).items()) А если так?

Roman
24.01.2017
19:02:07
filter(lambda x: x[1] > 1, Counter(elements).items()) А если так?
Ты бы с timeit что ли показал :)

Maxim robox
24.01.2017
19:02:29
Ты бы с timeit что ли показал :)
Это я прошу запустить его. У меня нет timeit и сайт ipython отвалился.

Но вообще это O(2n) же?

Roman
24.01.2017
19:02:57
Но вообще это O(2n) же?
Имхо, O(3n), но коэффициенты опускаются

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