
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

Roman
24.01.2017
18:28:58

Maxim robox
24.01.2017
18:32:16

Roman
24.01.2017
18:33:14

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

Roman
24.01.2017
18:36:55

Maxim robox
24.01.2017
18:38:24

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

Roman
24.01.2017
18:41:12

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
я пабидил

Maxim robox
24.01.2017
18:43:02

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
нормальная история, нормальное многострочное редактирование
подсветка синтаксиса, куча хелперов

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

Nikolay
24.01.2017
18:45:04
черт, не успел

Google

Roman
24.01.2017
18:45:29

Maxim robox
24.01.2017
18:45:32

Nikolay
24.01.2017
18:45:58

Maxim robox
24.01.2017
18:46:21

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

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
на основе виджетов местных?

Mikhail
24.01.2017
18:48:52

Nikolay
24.01.2017
18:48:59

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

Roman
24.01.2017
18:49:30
Интересно было бы превратить это в компрехеншн

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 операция

Roman
24.01.2017
18:52:58

Nikolay
24.01.2017
18:53:12

Roman
24.01.2017
18:55:24

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

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

Roman
24.01.2017
18:59:54

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

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

Roman
24.01.2017
19:00:36

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

Maxim robox
24.01.2017
19:02:29
Но вообще это O(2n) же?

Roman
24.01.2017
19:02:57