@python_beginnersЭта группа больше не существует

Страница 68 из 1885
Roman
19.06.2016
20:55:01
можно знатно угуляться в дороге )

Alexey
19.06.2016
20:55:14
Так, что пешком пойти.

Zart
19.06.2016
20:55:50
не будет прямого - поеду через мск

Alexey
19.06.2016
20:57:24
Эм, то есть он вообще про всех сейчас расскажет, да?

Google
Alexey
19.06.2016
20:57:55
Почему, кстати, сеочят больше всех программерских вместе взятых без рекламы без смс всегда ночью джойн ссылка инвайт?

https://vc.ru/p/seo-problems

Марк
19.06.2016
21:00:22
Кстати, у этого индуса встретил пост: как быстрее всего найти элемент в списке из четырех элементов.

Alexey
19.06.2016
21:00:32
Перебрать? :)

Zart
19.06.2016
21:01:37
отсортировать пузырьком, а потом двоичным поиском

Марк
19.06.2016
21:02:04
Ну, вопрос забавный на самом деле

Alexey
19.06.2016
21:02:07
Шеллом сортируйте.

Zart
19.06.2016
21:02:24
ну или сидеть на берегу и ждать пока мимо не проплывет труп искомого элемента

Janek
19.06.2016
21:05:40
Прямо как в Ганге

Alexey
19.06.2016
21:05:44
Пока новички спят: https://habrahabr.ru/company/reactos/blog/303618/

Марк
19.06.2016
21:06:54
Сорь, не элемент, а индекс элемента

Zart
19.06.2016
21:07:07
а разве реактос косил под серверную ску хоть раз?

Марк
19.06.2016
21:07:23
Го варианты

Google
Alexey
19.06.2016
21:07:35
Так в том-то и дело, что они чисто винапи же пытаются запилить нт5 и всйо. Какой сервер.

Zart
19.06.2016
21:07:44
mylist.find(element)

ну. я пробовал реактос. переключение кодовой страницы на лету в инсталлере доставило, да

Zart
19.06.2016
21:09:02
логину хочет, нафех

Марк
19.06.2016
21:09:09
if value in mylist: return mylist.index(value) - самый тупой

Alexey
19.06.2016
21:09:16
Andrey
19.06.2016
21:09:17
Го варианты
Отнять искомое число от каждого элемента. После перемножать по порядку и после каждого умножения проверять на ноль)

Zart
19.06.2016
21:10:49
if value in mylist: return mylist.index(value) - самый тупой
я спутал, find есть только на строках, а index и на строках и на списках

Марк
19.06.2016
21:11:30
Почему индус считает этот варик самым тупым?

Zart
19.06.2016
21:11:55
if value in mylist: return mylist.index(value) - самый тупой
дерьмовый способ кстати, так как и in проверка и .index будут сканировать линейно. проще тупо .index сразу если гарантированно элемент есть

или же в трай блоке если хочется поймать отсутствие

Andrey
19.06.2016
21:12:49
Тогда уж руками перебрать проще.

Zart
19.06.2016
21:12:54
на коротких списках этот вариант будет быстрее всех на здоровых - если можно отсортировать, то через бисект

индекс и перебирает

Denis
19.06.2016
21:14:12
Если надо один раз найти, линейный поиск на любом списке самым быстрым будет

Zart
19.06.2016
21:14:46
бинарный на большом отсортированном быстрее по определению

Denis
19.06.2016
21:14:58
Сортировка дольше поиска

Zart
19.06.2016
21:15:09
поэтому было "если"

когда данные изначально отсортированы и поддерживаются в этом виде - поиск можно ускорять

Google
Denis
19.06.2016
21:16:11
А если данные в словаре, можно еще сильнее ускорить

Zart
19.06.2016
21:16:12
на мелких списках линейный выигрывает так как не тратит лишнего времени на всякое

Aleshka
19.06.2016
21:16:51
need help кто в машинном обучении шарит, задачка взять выборку, метод K ближайших соседей. Надо сделать кроссвалидацию при k от 1 до 50 и посмотреть при каком количестве соседей лучше accuracy.

Марк
19.06.2016
21:16:55
Ответ: Here the problem is, in the condition used in if, it takes O(n) time to check if the value is in the list, and the return statement - mylist.index(value), also takes O(n) time.

Aleshka
19.06.2016
21:17:10
проблема в том, что он дает одно и то же значение для всех 50 K

0.71 (+/- 0.13) при K от 1 до 50

Zart
19.06.2016
21:17:52
Ответ: Here the problem is, in the condition used in if, it takes O(n) time to check if the value is in the list, and the return statement - mylist.index(value), also takes O(n) time.
ответ на что? O(n) и было про линейный поиск, что сказало уже три человека вроде

Марк
19.06.2016
21:18:21
Вопрос: какой варик самый быстрый

Alexey
19.06.2016
21:18:27
Прям вот это.

Прям вот, сука, дословно.

Zart
19.06.2016
21:18:47
ну. варианты из одного предложенного - это как горбачева в президенты?

Марк
19.06.2016
21:19:12
Нет. Есть более быстрее варианты.

Alexey
19.06.2016
21:19:24
Вариватты? Вайпер в чяти!

Denis
19.06.2016
21:19:36
Если в списке 4 элемента, есть много вариантов

Нужен бенчмарк

Aleshka
19.06.2016
21:19:49
ад, вопрос снят, столько раз код переписывал что в цикле забыл присваивать валидацию переменной каждый раз ?

Zart
19.06.2016
21:19:52
ну. предлагай шоле... а то ща до метода монте-карло докатимся

Марк
19.06.2016
21:20:49
try: return mylist.index(value) except ValueError: return None

Zart
19.06.2016
21:20:57
бляяяяяяяяяяя

Google
Denis
19.06.2016
21:21:01
Это не быстро нифига

Zart
19.06.2016
21:21:04
а ты чат вообще читаешь?

Это не быстро нифига
в питоне быстро

Denis
19.06.2016
21:21:41
Обработчик исключения ставится дольше, чем in работает, разве нет?

Alexey
19.06.2016
21:21:42
дерьмовый способ кстати, так как и in проверка и .index будут сканировать линейно. проще тупо .index сразу если гарантированно элемент есть

Admin
ERROR: S client not available

Alexey
19.06.2016
21:21:42
или же в трай блоке если хочется поймать отсутствие

Zart
19.06.2016
21:22:03
дерьмовый способ кстати, так как и in проверка и .index будут сканировать линейно. проще тупо .index сразу если гарантированно элемент есть

или же в трай блоке если хочется поймать отсутствие

ну йопт 8(

Андрей
19.06.2016
21:22:12
В fpc есть олскульное иде.

Sergey
19.06.2016
21:23:13
Вообще, тут недавно читал, что исключения в Python на самом деле медленные, но проверить на примерах руки не дошли

Alexey
19.06.2016
21:23:31
Обработчик исключения ставится дольше, чем in работает, разве нет?
Обработчик будет ставиться стопудово дешевле, чем начнёт работать in. А после прохода успешного ты начнёшь новый проход, чтобы получить индекс.

Alexey
19.06.2016
21:23:54
Поэтому ставим трай и имеем либо один полный проход и выход по исключению, либо возврат индекса.

Андрей
19.06.2016
21:25:59
Какие жестокие правила группы. Особенно второй пункт, хорошо что про Lisp можно поговорить :D

Zart
19.06.2016
21:27:24
[zart@aura ~]$ python -m timeit -s 'needle, haystack = 3, [1, 2, 3, 4]' 'if needle in haystack: haystack.index(needle)' 10000000 loops, best of 3: 0.195 usec per loop [zart@aura ~]$ python -m timeit -s 'needle, haystack = 3, [1, 2, 3, 4]' 'try: haystack.index(needle) > except Exception: > pass' 10000000 loops, best of 3: 0.158 usec per loop трай выиграл - 160 мс против 195 на итерацию

но это на очень маленьком листе

Google
Kill me pls
19.06.2016
21:27:52
HLOPE MACH FREI

Alexey
19.06.2016
21:28:12
Я на миллионе пока проверяю.

Kill me pls
19.06.2016
21:28:22
А как добавить?

Zart
19.06.2016
21:29:00
в роли иголки бери элемент на 70-80% списка шоле

если иголка будет первым, гм

Alexey
19.06.2016
21:30:23
а, ты натурально про четыре элемента? ооок.

Zart
19.06.2016
21:32:14
[zart@aura ~]$ python -m timeit -s 'needle, haystack = 1, [1, 2, 3, 4]' ' if needle in haystack: haystack.index(needle)' 10000000 loops, best of 3: 0.134 usec per loop [zart@aura ~]$ python -m timeit -s 'needle, haystack = 1, [1, 2, 3, 4]' ' try: haystack.index(needle) except Exception: pass' 10000000 loops, best of 3: 0.125 usec per loop у меня трай начинает и выигрывает 8)

Denis
19.06.2016
21:32:32
Если элемент есть, то трай чуть быстрее. Если нет, трай сильно медленнее

Zart
19.06.2016
21:32:42
угу, есть такое

Alexey
19.06.2016
21:33:04
поэтому там Гвидо что-то давно говорил, мол, юзайте исключения именно для исключений.

☝?️??

Zart
19.06.2016
21:33:59
эта проблема известна как "EAFP vs LBYL"

Denis
19.06.2016
21:34:33
Хоть бы аббревиатуры покрасивее придумали

Alexey
19.06.2016
21:34:47
Зря ты так. Классные.

Страница 68 из 1885

Эта группа больше не существует Эта группа больше не существует