Alex1408
Нужно наоборот - оставить запросы, что содержат слова.
Alex1408
Я not перед Set убрал, что нужно получилось.
Да, not убрал и всё.
>>> queries = 'смотреть сериалы онлайн,новости,какая рыба вобла,пхенчхан золото онлайн,сколько дней до 8 марта'
>>> words = ['онлайн', 'золото']
>>>
>>> out = ','.join(query for query in queries.split(',')
... if set(words).intersection(query.split()))
>>>
>>> out
'смотреть сериалы онлайн,пхенчхан золото онлайн'
>>>
Alex1408
А зачем в 4 строке лист переводить в строчку, а потом опять в лист. Или что то не так понимаю. Можно пояснить ?
Ты знаешь, принято так в программировании: что ты получил, то ты максимально неизменным и оставляешь; меняешь только то, что надо поменять в соответствии с задачей.
Если ты получил хрень какую-то в каком-то виде, то ты такой её и оставляешь на выходе, но при этом на выходе она у тебя вся переделана так, как нужно.
PEHDOM , например, для удобства перевёл данные в более удобный вид, а на выходе так и оставил - в удобном виде. Казалось бы, ну и что? что плохого-то в этом? Ну, для новичка это не плохо.
Но существует такая вещь
wiki. UNIX. программыНа английский вариант тоже надо обратить внимание
wiki. UNIX. programs9-ое правило гласит
“Делайте каждую программу «фильтром».”
Кстати, Zen питона, он оттуда проистекает, только об этом мало кто знает.
Потому что UNIX подзабыли немножко, а в Linux этого всего нет, там фокус другой. Поэтому так и кажется, что
Zen - это такое открытие.
Так вот, 9-ое правило гласит
“Делайте каждую программу «фильтром».”
Это значит что? Это значит, что данные к нам приходят в виде текста и уходят от нас в виде текста. Вот как они пришли, вот так они и ушли. Мы не думаем о том, что раз наша программа на питоне, то питоном всё и закончится, а потому нужно всё, что приходит, превращать в питоновское. Мы думаем так: нам пришли данные; нам пришла задача; мы выполняем задачу с этими данными; мы отправляем данные дальше. Почему эти данные в виде строки через запятые, почему то, почему это, - это всё нас не касается, у нас задача своя.
Когда
PEHDOM с новичкового уровня выйдет, он начнёт это видеть. Он начнёт видеть “а что там вокруг программы этой происходит, а куда её устанавливают, а какие потоки данных на неё запускают и как она их фильтрует и как там другие программы эти отфильтрованные потоки данных принимают уже на себя и дальше там тоже что-то делают”. То есть он будет видеть
заранее, как эта программа работает, когда она уже как бы написана и уже установлена. И зная то, как эти все программы вместе образуют программное поле, он уже будет проектировать её в соответствии с этим программным полем. И таким образом она уже не будет как какой-то треугольный кирпич выбиваться из общей кладки.
tags: unix philosophy