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

Страница 977 из 1885
Человек
23.12.2016
07:33:50
в борщ можешь?
Могу даже из борща

Vadim
23.12.2016
07:52:02
умею всё
Человек, расскажи как научился всему. Тут канал начинающих, советы тут любят

Человек
23.12.2016
07:52:33
Ещё со школы начал пробовать всё помаленьку

Потом пошёл работать и учился у умеющих людей

Google
Человек
23.12.2016
07:52:52
так и научился

Amaro
23.12.2016
07:53:05
И даже в области балета Н впереди планеты всей.

Человек
23.12.2016
07:57:20
Не

Но я могу научиться

Roman
23.12.2016
08:04:15
Человек
23.12.2016
08:04:44
Roman
23.12.2016
08:04:57
(_)
следующий

arisu
23.12.2016
08:24:43
господа фрилансеры за 300к в секунду

ManyaMaker
23.12.2016
08:24:54
а

arisu
23.12.2016
08:24:57
есть небольшая задачка

есть некий список строк

из него нужно выкинуть все строки, которые являются вхождениями других

Google
arisu
23.12.2016
08:25:39
как за минимальное число операций совершить это?

например ["amy", "my", "am", "amber"] -> ["amy", "amber"]

Темный
23.12.2016
08:27:02
коллекшн?

Человек
23.12.2016
08:27:37
Отсортировать по возрастанию символов

Начиная с первого сверять с остальными

последний не трогать

ходить по массиву лучше сразу с конца в таком случае

типа

берёшь первый, сравниваешь с последним(N), затем с (N-1), (N-2) и т.д.

Роман
23.12.2016
08:30:46
что-то жесть

а нельзя по второму списку пройтись и сделать remove в первом?

Человек
23.12.2016
08:31:11
это оптимизация

Pavel
23.12.2016
08:31:12
Отсортировать по возрастанию символов
по возрастанию количества символов, да?

Pavel
23.12.2016
08:31:25
то есть по длине

arisu
23.12.2016
08:46:12
решил проблему по-другому

не надо было мне исключать вхождения)

Человек
23.12.2016
08:47:03
Zart
23.12.2016
08:47:10
взял и всё тз изменил

Google
Человек
23.12.2016
08:47:24
типичный такой заказчик

arisu
23.12.2016
08:48:03
ну задача вам на интерес, а мне просто нужно было слова поискового запроса подсветить, без перекрывания совпадений

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

Johnnie
23.12.2016
08:50:12
типичный такой заказчик
"эта задача может быть реализована только вместе с этим уточнением. Нет смысла переносить без этого требования. Считайте, что это дополнение при тестировании." (с) реальный заказчик

Человек
23.12.2016
08:50:40
лол

arisu
23.12.2016
08:53:40
давайте еще на смекалку

что вернет этот код: (word for word in search_query.split(" ") if word)

Zart
23.12.2016
08:54:23
filter(None, search_query.split()) ?

Roman
23.12.2016
08:55:05
word for word ? это как вообще

Zart
23.12.2016
08:55:15
нормально это

Человек
23.12.2016
08:55:19
if word

Zart
23.12.2016
08:55:21
обычный компрехеншен

Человек
23.12.2016
08:56:08
первое слово вернет

Zart
23.12.2016
08:56:17
Dmitriy
23.12.2016
08:56:49
Генератор вернет

Человек
23.12.2016
08:57:45
какой-то сложный ребус

Igor
23.12.2016
08:58:14
имхо, должен вернуть генератор, перечисляющий наборы символов, которые разделялись пробелом в поисковом запросе

"наборы символов" можно упростить и назвать "слова" (но там, конечно, всякое "f00bar" тоже может встречаться)

if word избавит от случая, когда word == '' а такое может произойти если юзер поставил несколько пробелов подряд например

заебись, угадал а search.query.split() не совсем корректно по сравнению с оригинальным условием, ибо \n и \t тоже будут учитываться %)

Google
Zart
23.12.2016
09:01:28
я вот не понимаю почему люди любят делать сплит по пробелу, вместо дефолта

который сплитит по вайтспейсу

Igor
23.12.2016
09:01:47
+1, но ¯\_(ツ)_/¯

Alexey
23.12.2016
09:02:29
я вот не понимаю почему люди любят делать сплит по пробелу, вместо дефолта
потому что доку не читают или читают невнимательно

Igor
23.12.2016
09:03:09
ух ты, спасибо, узнал про filter(None, ..)

думал, туда только callable можно

Admin
ERROR: S client not available

Zart
23.12.2016
09:03:24
еще есть map(None

Igor
23.12.2016
09:03:33
(дада, я отличное подтверждение тому, что люди не читают доку или читают невнимательно)

Stanislav
23.12.2016
09:05:03
Азаза, фрилансер 60к+ порвался)))

if word

первое слово вернет

Zart
23.12.2016
09:05:52
как за минимальное число операций совершить это?
вышло чтото такое: def compress(somelist): l = sorted(somelist, key=len) out = [] while l: e, l = l[-1], [word for word in l[:-1] if word not in l[-1]] out.append(e) return out

Dmitriy
23.12.2016
09:07:14
например ["amy", "my", "am", "amber"] -> ["amy", "amber"]
[z[0] for z in [[x for y in lst if x in y] for x in lst] if len(z) == 1]

Не минимально, но что-то

arisu
23.12.2016
09:10:16
filter(None, search_query.split()) ?
явное лучше чем неявное

алсо, if word отсекает пустые

Zart
23.12.2016
09:11:06
arisu
23.12.2016
09:11:37
бля

зарт

Google
arisu
23.12.2016
09:11:43
объясни

>>> filter(False, ['', '']) Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: 'bool' object is not callable >>> filter(None, ['', '']) [] >>> filter(bool, ['', '']) []

Zart
23.12.2016
09:12:02
а в чем вопрос?

arisu
23.12.2016
09:12:03
почему None - callable?

Zart
23.12.2016
09:12:11
None специальный случай просто

он не коллабл

arisu
23.12.2016
09:12:20
а

Igor
23.12.2016
09:12:30
почему None - callable?
вот я тоже охуел сначала :DDDD

Zart
23.12.2016
09:12:43
проще говоря, внутри фильтр стоит чтото типа if callable is None: callable = bool

Igor
23.12.2016
09:12:50
Note that filter(function, iterable) is equivalent to [item for item in iterable if function(item)] if function is not None and [item for item in iterable if item] if function is None.

arisu
23.12.2016
09:12:56
тьфу, блядь

стану проституткой

не люблю я такое, когда опциональные все э

ти аргументы

необходимость понимаю, но отсутствие строгости не понимаю

Zart
23.12.2016
09:14:00
это может быть порой удобно, если фильтр передается как переменная

ну и это поведение было еще с тёмных времен, когда оно только появилось

Roman
23.12.2016
09:14:52
Irina Elisova joined the group Либо хр, либо будет просить, чтобы за неё сделали. Ставим ставки

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

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