@ru_python

Страница 1104 из 9768
Maxim
23.06.2016
11:10:37
Гфк - костыль к реляционной бд. Костыли не нужны. Ergo, гфк не нужны.
Это не костыль, это фича. Зная имя таблицы можно сгенерировать иннер джойн и получить нормальные данные. Но в джанго орм можно только по одной записи дергать.

Но чаще всего gfk не нужно.

Jonathan ?
23.06.2016
11:10:44
За сколько можно квартиру посуточно в Питере снять?

Richard
23.06.2016
11:10:57
Cian.ru

Google
Anonymous*
23.06.2016
11:11:14
Лучше иметь пару вариантов сразу

53r63rn4r
23.06.2016
11:11:24
,kznm сука

Jonathan ?
23.06.2016
11:11:33
Находили и за двуху но много кидал
На Airbnb нашел за 1800 студию

drjackild
23.06.2016
11:11:34
Короче, я так и не понял. как за один проход решить №2. Но по идее, в списке числа, которые подходят - это [0..42], то есть можно проверить на заданный диапазон, а потом че то еще сделать, но не знаю, че))

Anonymous*
23.06.2016
11:12:51
Мне алгоритм, с телефона неудобно код читать

Jonathan ?
23.06.2016
11:12:55
правильно
А полученный код он не может в бота вбить? Или ты хочешь, чтобы это автоматически было?

H
23.06.2016
11:13:06
кстати не знал, что dict.get вызывает каждый раз второй аргумент, даже если первый есть в словаре

но в задаче все равно, так как каждый раз x сбрасывается в цикле

Google
drjackild
23.06.2016
11:13:38
не было ничего. просто вот есть лист (теоретически, не конкретный, а вообще лист с интами), надо проверить. есть ли в нем два числа сумма которых = 42

Jonathan ?
23.06.2016
11:14:04
Кто-то юзал Airbnb еще?

Anonymous*
23.06.2016
11:14:14
Второй словарь сделать и в него пихать индексы если удовлетворяет условию 0..42

А можно обращаться к элементу зная значение но не зная индекса?

drjackild
23.06.2016
11:16:09
словарь? думаю список лучше. но что потом? еще и по нему пройтись? здесь что-то из математики, но я, к сожалению, в ней не силен((

да

Aragaer
23.06.2016
11:16:18
нужно ли знать, какие именно?

Anonymous*
23.06.2016
11:16:32
То есть если удовлетвлряет 0..42 то из 42 вычесть значение и найти в массиве

Если нет то нет если да то да

Aragaer
23.06.2016
11:16:40
сгенерить второй список с элементами 42-первый

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

Anonymous*
23.06.2016
11:16:52
Вот так вот как то но не уверен что так можно

AnswerX
23.06.2016
11:16:58
я вот не сильно шарю в сложностях алгоритмов, но почему бы не перебрать простым сравнением - брать 1 элем и сравнивать его с остальными и при сумме = 42 просто выйти из цикла

Cykooz
23.06.2016
11:17:04
кстати не знал, что dict.get вызывает каждый раз второй аргумент, даже если первый есть в словаре
Его не dict.get вызывает - его вызывает питон, что бы результат вызова передать в dict.get

Richard
23.06.2016
11:17:06
2. Есть список с int, он неотсортирован. Как проверить, есть ли в списке комбинация из двух чисел, сумма которых равняется 42? Желательная сложность алгоритма не более O(n)
Сначала создать пустой set. Взять число из списка, если >= 42 — continue. else проверить есть ли число в set (закончить если есть), найти разницу 42 - число. Если эта разница есть в set — задача решена, иначе добавить разницу в set

AnswerX
23.06.2016
11:17:08
один, а не первый

Андрей
23.06.2016
11:17:36
for t in a: if 43 in map(lambda x: x+t ,a): print('Yep!') break

Aragaer
23.06.2016
11:17:42
разницу кого с кем?

Андрей
23.06.2016
11:18:01
где a - список значений

Richard
23.06.2016
11:18:20
разницу кого с кем?
Взятого числа с 42

Google
drjackild
23.06.2016
11:18:46
Энди, тоже думал в сторону map, но разве это не проход по списку еще раз?

Richard
23.06.2016
11:18:59
Проверка на наличие числа в списке — О(n), в множестве — О(1)

Anonymous*
23.06.2016
11:19:11
Можно зная значение получить индекс элемента массива?

drjackild
23.06.2016
11:19:40
x да, list.index(value)

не прокатило, я ему такое тоже задвинул))

Anonymous*
23.06.2016
11:20:09
Да, О(н)
Т.е. работает как фор? Не покатит по скорости?

H
23.06.2016
11:20:10
у меня не получается лучше O(n log(n))

Richard
23.06.2016
11:20:13
Жжоте

terry
23.06.2016
11:20:23
Список 80 Python курсов http://bafflednerd.com/learn-python-online/

Anonymous*
23.06.2016
11:20:38
Richard
23.06.2016
11:22:05
drjackild
23.06.2016
11:22:11
неа, но у меня уже есть оффер от двух других компаний, поэтому сюда я шел больше для интереса. и надо сказать, что было круто, теперь я понимаю, что у меня здорооовый такой пробел в знаниях)

хотя, это я и раньше понимал ?

H
23.06.2016
11:22:39
А откуда log?
бинарный проход сета

Richard
23.06.2016
11:23:01
Век живи век учись. Только не рассказывай другим компаниям про пробел)

H
23.06.2016
11:23:14
но там сет из 42 значений, так что можно сказать о(1)!

Google
Richard
23.06.2016
11:23:19
бинарный проход сета
Из сета же за О(1) берётся.

drjackild
23.06.2016
11:23:20
ахах)) ну да, это для себя скорее)

Richard
23.06.2016
11:23:26
Там хэш

H
23.06.2016
11:24:07
кстати, а инты они же еще отрицательные могут быть

Richard
23.06.2016
11:24:35
Так что в сете уже 84 значения!

85!

H
23.06.2016
11:24:45
Из сета же за О(1) берётся.
я сравниваю все значения с новым, если больше 42 делю пополам и беру другую половину

нет

может быть -1231241 и 12124124

в сумме будет 42

Admin
ERROR: S client not available

H
23.06.2016
11:25:12
числа от балды, но суть ты понял

даже с минусами получается о н лог н вроде

drjackild
23.06.2016
11:26:13
вот кстати про знак он не уточнил, так что полагаю, что да, с минусом тоже

Anonymous*
23.06.2016
11:28:15
Н н закезай код

H
23.06.2016
11:32:07
ну идея такая

AnswerX
23.06.2016
11:32:12
кажется что нужно работать с хешами. Запихиваешь все хеши в хеш таблицу без сортировки и на ходу потом сравниваешь

H
23.06.2016
11:32:45
работает только с 0..42 и во втором цикле там бинарный поиск, который мне лень писать

x = [1, 10, 30, 18, 45, 12] tmp = set() for i in x: # print(tmp) if i > 42 or i in tmp: continue done = False for j in tmp: if i + j == 42: print("yep!") done = True break if i + j > 42: break if done: break tmp.add(i) else: print("nope!")

может накосячил где

Google
H
23.06.2016
11:33:49
for j in tmp: - тут клевый бинарный обход сета за O(log n)

Anonymous*
23.06.2016
11:34:34
Черт слишком плохо знаю синтаксис

А на 2.7 пишет еще кто?

Насколько он актуален

H
23.06.2016
11:35:39
да все пишут

Cykooz
23.06.2016
11:35:52
Насколько он актуален
Для новых проектов не актуален. Для старых - ещё актуален до 2020 года

H
23.06.2016
11:35:59
indeed

Андрей
23.06.2016
11:37:07
А на 2.7 пишет еще кто?
Я случайно на нем бота своего написал

H
23.06.2016
11:37:20
https://pythonclock.org

Roman
23.06.2016
11:38:00
https://pythonclock.org
бляди, сэр

Anonymous*
23.06.2016
11:38:44
2020 через три полных года... еб твою мать как я стар

H
23.06.2016
11:39:43
представь, сейчас 18 лет тем, кто родился в 1998!

98й карл

Anonymous*
23.06.2016
11:39:59
И я уже не педофил

AnswerX
23.06.2016
11:41:01
дела еще страшнее - уже 16 тем, кто из 2000

Rinat
23.06.2016
11:41:04
ухх !!!

AnswerX
23.06.2016
11:41:10
то есть даже в этом случае не педофил

Rinat
23.06.2016
11:41:22
6 лет тем кто в 2010 )))

Anonymous*
23.06.2016
11:41:25
Хотя год назад был им)))

AnswerX
23.06.2016
11:41:35
время идет - люди меняются

H
23.06.2016
11:41:49
о, кстати вот и o(n) подъехал

x = [1, 10, 30, 18, 45, 12] tmp = set() for i in x: if i > 42 or i in tmp: continue if 42 - i in tmp: print("yep!") break tmp.add(i) else: print("nope!")

Andrey
23.06.2016
11:44:10
о, кстати вот и o(n) подъехал
Поиск в сете разве за O(1) происходит?

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