Помогите зеленому с заданием по Python

Алекс1408

Новичок
Пользователь
Ноя 18, 2020
11
1
3
Дана последовательность поисковых запросов из файла:
queries = 'смотреть сериалы онлайн,новости,какая рыба вобла,пхенчхан золото онлайн,сколько дней до 8 марта'

Необходимо исключить из этой строки запросы, которые НЕ содержат слов из листа words:
words = ['онлайн', 'золото']

Мой вариант оставляет но наоборот
queries = 'смотреть сериалы онлайн,новости,какая рыба вобла,пхенчхан золото онлайн,сколько дней до 8 марта'
words = ['онлайн', 'золото']
queries = queries.split(',')
queries
for i in words:
for j in queries:
if i in j:
queries.remove(j)
print(queries)

['новости', 'какая рыба вобла', 'сколько дней до 8 марта']

Плиз помогите - все перерыл в инете. Никак не разберусь.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 625
469
83
можно так
Python:
queries = 'смотреть сериалы онлайн,новости,какая рыба вобла,пхенчхан золото онлайн,сколько дней до 8 марта'
words = ['онлайн', 'золото']
queries = queries.split(',')
result = []

for i in queries:
    for j in range(1):
        if words[j] in i:
            result.append(i)

print(result)
 
  • Мне нравится
Реакции: Алекс1408

Алекс1408

Новичок
Пользователь
Ноя 18, 2020
11
1
3
Спасибо большое.
А подскажите плиз, зачем с строке range
for j in range(1):

Это диапазон для words, чтобы выводились только 2 запроса? Чтобы цикл не повторялся?

можно так
Python:
queries = 'смотреть сериалы онлайн,новости,какая рыба вобла,пхенчхан золото онлайн,сколько дней до 8 марта'
words = ['онлайн', 'золото']
queries = queries.split(',')
result = []

for i in queries:
    for j in range(1):
        if words[j] in i:
            result.append(i)

print(result)
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 625
469
83
Спасибо большое.
А подскажите плиз, зачем с строке range
for j in range(1):

Это диапазон для words, чтобы выводились только 2 запроса? Чтобы цикл не повторялся?
в цикле for j in range(1): мы проверяем на вхождение каждый элемент из списка words в элемент из списка queries, 'j' принимает значение 0 и 1, мы используем их как индексы элементов в списке words, можно было написать так
Python:
queries = 'смотреть сериалы онлайн,новости,какая рыба вобла,пхенчхан золото онлайн,сколько дней до 8 марта'
words = ['онлайн', 'золото']
queries = queries.split(',')
result = []

for i in queries:
    for j in words:
        if j in i:
            result.append(i)

print(result)
но в таком случае, в списке result фраза 'пхенчхан золото онлайн' повторится 2 раза, так как в ней есть оба элемента (слова) из списка words

без for j in range(1) можно так
Python:
queries = 'смотреть сериалы онлайн,новости,какая рыба вобла,пхенчхан золото онлайн,сколько дней до 8 марта'
words = ['онлайн', 'золото']
queries = queries.split(',')
result = []

for i in queries:
    for j in words:
        if j in i:
            result.append(i)
            break

print(result)
 
Последнее редактирование:
  • Мне нравится
Реакции: Алекс1408

Форум IT Специалистов