Алексей
у тебя один O от чего то и другой O от чего то, только константы там могут быть совершенно разные
Amaro
Злые вы. Хорошо, О(1) и 5 О(1) позволяют. Ну хоть примерненько :)))
Aragaer
тоже нет 8)
Amaro
Хотя тоже нет, я знаю. Но хочется :)
Aragaer
тут надо отдельно говорить о том, сколько делается итераций, а отдельно оценивать длительность отдельно взятой итерации
Aragaer
и нету нотации (ну или я об этом не знаю), чтобы можно было говорить про обе вещи одновременно
Tigran
на настоящем компьютере все конечные алгоритмы работают за О(1), дискасс
Алексей
тут уже бенчмаркать конкретные реализации конкретных алгоритмов
Aragaer
кроме оценки времени еще есть похожая оценка по памяти если что
Amaro
и нету нотации (ну или я об этом не знаю), чтобы можно было говорить про обе вещи одновременно
Как же? А только что введённая вами О(3)? Ведь именно оно и имелось ввиду
Aragaer
может быть существует способ совсем быстро найти эти три максимальных, но заюзать для этого дофига памяти
Алексей
Как же? А только что введённая вами О(3)? Ведь именно оно и имелось ввиду
O нотация не подходит, потому что ничего не говорит о связи констант между двумя О нотациями
Denis
Есть ли общепринятые методы объявления обязательных параметров у ABC-классов?
Denis
У их методов
Amaro
Зато я точно знаю, как это решить ровно за 3n шагов и к мать мозг.
Amaro
Даже за 3(n-1)
Tigran
это вы три максимальных элемента в массиве столько ищете?
Алексей
Хотя к питону это относится в меньшей степени, но шаги - довольно эфемерная единица, потому что у программиста, компилятора и процессора свои довольно разные взгляды на всякие шаги.
Tigran
так-то алгоритм за 3(n-1) сравнений выглядит тривиальным
Futorio
Привет всем, увидел недавно такую, как мне кажется, странную конструкцию: class ClassName(object): def __init__(self): super(ClassName, self).__init__() ... Зачем нужно вызывать __init__() класса object?
Amaro
можно за 2n сравнений вроде бы
Так как разница константный множитель, я ей пренебрегу по совету товарищей :))(
Tigran
Привет всем, увидел недавно такую, как мне кажется, странную конструкцию: class ClassName(object): def __init__(self): super(ClassName, self).__init__() ... Зачем нужно вызывать __init__() класса object?
Низачем, чувак просто сделал как везде и не парился. Ну и если вдруг предка сменишь, можешь забыть super воткнуть
Tigran
ну или случай diamond inheritance предусмотрел
Alex
Низачем, чувак просто сделал как везде и не парился. Ну и если вдруг предка сменишь, можешь забыть super воткнуть
вообще-то зачем. это вызов __init__ следующего класса в __mro__ коим может быть не object
Tigran
да, точно. но это адочек, конечно
Alex
да, точно. но это адочек, конечно
другой вопрос в том что это плохо пахнет и так не надо делать по-умолчанию для всех классов.
Alex
вот если ты точно знаешь что у тебя тут будет множественное наследование с вызовом нескольких конструкторов
koder
другой вопрос в том что это плохо пахнет и так не надо делать по-умолчанию для всех классов.
init вообще пример бальшого пр*ба. Он типа как виртуальная функция смотрится, но на самом деле нет и это просто совпадение имен. Так что super с ним не всегда имеет смысл - иногда лучше явно вызвать базовые конструкторы. Но хоть что-то вызвать таки надо
Tigran
вызывать базовые конструкторы явно — это прекрасно до первого diamond inheritance
koder
Да, если ромб, то все совсем плохо
koder
Тут без вариантов
Alex
В принципе любое множественное наследование.
Tigran
— ты же просто хуячишь наследование вместо композиции где попало — ты чё, пёс, я пайтон синьор девелопер
koder
В принципе любое множественное наследование.
Не, без ромба вызывать явно базовые надежнее
koder
Ок, это долгий и спорный разговор )
Futorio
Не, без ромба вызывать явно базовые надежнее
Явно вызвать это каким образом?
Futorio
`ClassName.__init__(self)`
То есть self из наследника передать в конструктор наследуемого класса?
Alex
То есть self из наследника передать в конструктор наследуемого класса?
имхо так делать не надо если явно нет необходимости. но ты просто явно вызываешь конкретный __init__ у базового(-ых) классов.
Ilya
День добрый, вопрос не по теме, но может кто-нибудь из местных хорошо знаком с InfluxDB По доке более менее разобрался, ностолкнулся с тем, что не могу в селект записать where val=1 and val=2 Т.е. если к val обращение 2 раза, то не прокатывает, хотя если по одному, то норм возвращает нужные мне значения
Андрей
эм
Андрей
ну логично предположить что ты хочешь чтобы val было одновременно равно 1 и 2
Андрей
а такого не бывает
Андрей
вот он тебе ничего и не возвращает
Ilya
бывает, я провожу аналогию с итаблицами межермент это таблица и я знаю, что в нем есть 1.2.3.4.5, но я хочу вывести только строки со значением межермента 1,2 как-то так
Андрей
ну тогда используй or
Андрей
а не and
Arthur
как найти в строке строку?)
Andrew
как найти в строке строку?)
'бля' in 'блэт'
Arthur
не
Arthur
мне нужно вітащить
GoTo
Гугли регулярные выражения
Amaro
Втащить?
Ringо
не
haystack.index(needle)?
Nikita
ребят, а массив (список) как лучше в БД хранить(sqlite)?
Pavel
потрясающие познания в SQL
ну у постгреса есть array, но скорее всего ему он НЕ НУЖЕН
Nikita
список чего?
список IDшников, например
Tigran
Pavel
у меня не постгрес
и скорее всего ты не очень хорошо понимаешь, что хочешь сделать
Amaro
список IDшников, например
Отдельно? Один айди - одна запись?
Pavel
да я вообще не по этой теме написал
mea culpa, я не очень внимателен
Danil
ребят, а массив (список) как лучше в БД хранить(sqlite)?
Смотря для чего. Самый простой способ - сохранять нормализацию базы и сохранять элементы списков в другую таблицу через fk
Андрей
юзать sql чтобы запихнуть всё в одну таблицу
Андрей
неплохо сыграно
Андрей
напиши конкретный пример - и тебе скажут почему массив не нужен
Андрей
насколько я помню sqlite не поддерживает массивы впринципе
Nikita
Отдельно? Один айди - одна запись?
нет, формат записи такой: selected_recor_id | array_of_ids_table1 | array_of_ids_table2